JS冒泡排序,选择排序,插入排序,希尔排序,快速排序

冒泡排序:

var arr = [];
for(var i = 0;i < 10;i++){
  arr[i] = Math.floor(Math.random()*101);
}
console.log(arr);
var temp;
for(var i = 0;i < arr.length; i++){
  for(var j = 0; j < arr.length-1-i; j++){
    if(arr[j] > arr[j+1]){
      temp = arr[j];
      arr[j] = arr[j+1];
      arr[j+1] = temp;           
    }
  }
}
console.log(arr);

选择排序:

var arr = [];
for(var i = 0;i < 1000;i++){
  arr[i] = Math.floor(Math.random()*101);
}
console.log(arr);
var temp,min;
for(var i = 0;i < arr.length-1; i++){
  min = i;
  for(var j = i+1; j < arr.length; j++){
    if(arr[j] < arr[min]){
         min = j;
    }
  }
  temp = arr[i];
  arr[i] = arr[min];
  arr[min] = temp;
} 
console.log(arr);

插入排序:

var arr = [];
for(var i = 0;i < 10;i++){
  arr[i] = Math.floor(Math.random()*101);
}
console.log(arr);
var min,temp;
for(var i = 0;i < arr.length-1 ; i++){
  if(arr[i]>arr[i+1]){
     min = i+1;
     temp = arr[min];
      var j = i;
      while(arr[j] >= temp&&j>=0){
        arr[j+1] = arr[j];
        j--;
      }
      arr[j+1]=temp;
  }

} 
console.log(arr);

希尔排序:

var arr = [];
for(var i = 0;i < 4;i++){
  arr[i] = Math.floor(Math.random()*101);
}
var interval= [5,3,1];
console.log(arr);
var start = new Date().getTime();
var temp,mim;
for(var g = 0;g < interval.length; g++){
  for(var i = 0; i < arr.length ; i++){
    for(var j = i; j < arr.length; j += interval[g]){
          if(arr[j]>arr[j+interval[g]]){
           min = j+interval[g];
           temp = arr[min];
           var k = j;
            while(arr[k] >= temp&&k>=0){
              arr[k+interval[g]] = arr[k];
              k-=interval[g]; 
            } 
            arr[k+interval[g]]=temp;
        }
  	} 
  }
} 

var stop = new Date().getTime();  
console.log(arr);
console.log(stop-start);

快速排序:

function qSort(arr){
  if(arr.length==0){
    return [];
  }
  var left = [];
  var right = [];
  var baseRoot = arr[0];
  for(var i = 1;i < arr.length ; i++){
     if(arr[i]>baseRoot){
       right.push(arr[i]);
     }else{
       left.push(arr[i]);
     }
  }
  
  return qSort(left).concat(baseRoot,qSort(right));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值