数组排序

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

  先说快速排序:

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

  

 

posted @ 2019-01-14 15:43  笨鸟使劲飞  阅读(130)  评论(0编辑  收藏  举报