码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序算法

时间:2017-01-07 18:05:49      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:math   快速排序算法   log   add   return   mat   concat   index   turn   


    function quickSort(arr,dir) {
        var dir=dir||‘add‘;

        if (arr.length <= 1) { return arr; }
        var pivotIndex = Math.floor(arr.length / 2) ;
        var pivot = arr.splice(pivotIndex, 1)[0];   //基准
        var left = [];
        var right = [];
        if(dir==‘add‘){   //生序
            for (var i = 0; i < arr.length; i++){
                arr[i] < pivot ? left.push(arr[i]): right.push(arr[i]);
            }
        }else{
            for (var i = 0; i < arr.length; i++){
                arr[i] > pivot ? left.push(arr[i]): right.push(arr[i]);
            }
        }

        return quickSort(left).concat([pivot], quickSort(right))  //不断递归
    };
    var arr=[3,2,67,10,345];

    console.log(quickSort(arr,‘aa‘))

 

 

 

快速排序算法

标签:math   快速排序算法   log   add   return   mat   concat   index   turn   

原文地址:http://www.cnblogs.com/wanghaonull/p/6259864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!