快速排序

作者: ferrint | 来源:发表于2017-02-26 21:34 被阅读3次

    关键词:快速排序

    步骤:

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

    相关文章

      网友评论

        本文标题:快速排序

        本文链接:https://www.haomeiwen.com/subject/rfjawttx.html