msdn

插入排序 选择排序 冒泡排序
插入排序:一个数组第一个数为有序部分,后面为无序部分,讲无序部分第一个数插入到有序部分中,选取无序部分第一个数和有...
扫描右侧二维码阅读全文
20
2019/11

插入排序 选择排序 冒泡排序

插入排序:一个数组第一个数为有序部分,后面为无序部分,讲无序部分第一个数插入到有序部分中,选取无序部分第一个数和有序部分(从末尾开始依次比较),如果无序部分小,则有序部分数据后移一位,无序部分插入有序部分之前,循环下一次
function insertSort(arr)
{
for (var i=1;i<arr.length;i++)
{

  var temp=arr[i];
  var j=i-1;
  while(j>=0&&temp<arr[j])
 {
  arr[j+1]=arr[j];
  j--;
 }
 arr[j+1]=temp;

}
return arr;
}

选择排序 将数组第一个数默认为最小 记录为minindex 循环和后面的数比较碰到比他小的就 minindex=i;结束比较后 将arr[minindex]=arr[i];交换 保证第一个数最小 ,依次循环到最后

function selectSort(arr)
{
var min=0;var temp=0;
for (var i=0;i<arr.length-1;i++)
{

  min=i;
  for(var j=i+1;j<arr.length;j++)
   {
     if(arr[min]>arr[j])
     {
       min=j;
     }
   }
temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;

}
return arr;
}

冒泡排序 内循环俩俩比较大的数放后面,知道最后,之后一个数为最大数,在外循环arr.length-1次

function bubbleSort(arr)
{
var temp=0;
for(var i=0;i<arr.length-1;i++)
{

   for(var j=0;j<arr.length-i-1;j++)
    {
        if(arr[i]>arr[i+1])
         {
         temp= arr[i];
         arr[i]=arr[i+1];
         arr[i+1]=temp;
         }

    }

}
return arr;
}

二分法查找(必须是有序的数组)
function binary(arr,search){
var l=0,r=arr.lenght-1;
while(l<r){

var m=Math.ceil(l+r)/2;
    if(seach=arr[m]){consloe.log(m);}
    else if(search>arr[m]){ l=m+1; }
    else if(search<arr[m]){ r=m-1; }

}
}

Last modification:December 19th, 2019 at 08:59 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment