你的位置:首页 > Java教程

[Java教程]用js实现简单排序算法


一.冒泡排序

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);