揭开web前端的面纱

快速排序

2017-02-26  本文已影响3人  ferrint

关键词:快速排序

步骤:

1.找基准(一般是以中间项为基准)

2.遍历数组,小于基准的放在left,大于基准的放在right

3.递归

  function quickSort(arr){
     //如果数组长度<=1,则直接返回
     if(arr.length <= 1){
        return arr;
     }
     var num = Math.floor(arr.length/2);
     //找基准
     var numValue = arr.splice(num,1);
     var left = [];
     var right = [];
     // 遍历数组
     for(var i = 0;i<arr.length;i++){
       if(arr[i] <= numValue){
        left.push(arr[i]);
       }else{
        right.push(arr[i]);
       }
     } 
     // 递归
     return quickSort(left).concat([numValue],quickSort(right));     
  }

    var a = quickSort([12,99,347,883,995,352,663]);
    alert(a);
上一篇下一篇

猜你喜欢

热点阅读