数组排序

  虽然是基础,但是也是无意之中写了好几遍然后总是漏洞百出,所以在这里记录一下。

  先说快速排序:

  var sortArr =  [2,4,3,5,64,56,0,100,1];

  function quick(arr){

    if(arr.length <= 1){

      return arr;

    }

    var middleIndex = Math.floor(arr.length/2);

    var middle = arr.splice(middleIndex,1);                      //    找基准值

    var left = [];

    var right = [];

    for(var i = 0; i<arr.length; i++){

      if(arr[i] < middle){

        left.push(arr[i]);

      }else{

        tight.push(arr[i]);

      }

    }

    return quick(left).concat(middle,quick(right));

  }

  quick(oldArr);

  console.log(quick(sortArr));

  坑:   我在最后调用一下quick(oldArr) 然后在输出,就会出现错误 (如上标黄那里)

 

  第二种说冒泡排序:

  var sortArr =  [2,4,3,5,64,56,0,100,1];

  function bubble(arr){

    for(var i = 0; i<arr.length; i++){

      for(var j = 0; j<arr.length-1; j++){

        if(arr[i]<arr[j]){

          var num = arr[i];

          arr[i] = arr[j];

          arr[j] = num;

        }

      }  

    } 

    console.log(arr);

  }

  bubble(sortArr);

  

 

转载于:https://www.cnblogs.com/ly-qingqiu/p/10267179.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值