用js实现简单排序算法

it2022-05-05  139

一.冒泡排序

var arr1=[3,9,2,7,0,8,4]; for(var i=0;i<arr1.length;i++){   for(var j=i+1;j<arr1.length;j++){     var temp=0;     if(arr1[i]>arr1[j]){       temp=arr1[i];       arr1[i]=arr1[j];       arr1[j]=temp;     }   } } alert(arr1);

二.快速排序

var a=[3,5,0,9,2,7,5]; function quickSort(arr){  var len=a.length;   if(len<=1) return arr;   function sort(low,height){     var pivot=a[low];     var i=low,j=height,t;     if(i>j) return false;     while(i!=j){       while(a[j]>=pivot&&i<j){         j--;       }       while(a[i]<=pivot&&i<j){         i++;       }       if(i<j){//把比pivot大的换到右边,小的换到左边         t=a[i];         a[i]=a[j];         a[j]=t;       }     }     //此时i和j指向同一个数字,把这个数字和pivot交换     a[low]=a[i];     a[i]=pivot;     //递归:把pivot左边的数进行一次排序,右边的数进行一次排序     sort(low,i-1);     sort(i+1,height);   }   //调用这个排序的函数   sort(0,len-1);   return a; } alert(quickSort(a));

三.选择排序

var arr=[3,6,9,4,7,2,4,1]; var a=[],len=arr.length,t; while(len>0){  for(var i=1;i<len;i++){     if(arr[0]>arr[i]){       t=arr[0];       arr[0]=arr[i];       arr[i]=t;     }   }   var num=arr.shift(arr[0]);//去掉arr[0]   a.push(num);   len--; } alert(a);

转载于:https://www.cnblogs.com/jinxiangli/p/5903632.html


最新回复(0)