JS快排

作者: 章文顺 | 来源:发表于2018-04-03 16:23 被阅读0次

    "快速排序"的思想,整个排序过程只需要三步:

    (1)在数据集之中,选择一个元素作为"基准"(pivot)。
    (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。
    (3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
    

    (摘抄:http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html

    实现方法

    function quickSort(arr){
        if(arr.length <= 1) return arr;
        var index = Math.floor(arr.length/2);
        var key = arr.splice(index,1)[0]; //取中间值作为基准
        var left = [],right = [];
        arr.forEach(function(v){
            v <= key ? left.push(v) : right.push(v); //根据基准值,分别入列
        });
        return quickSort(left).concat([key],quickSort(right));//递归前两个动作,合并数组,完成排序
     }
    

    大前端知识库收集分享 www.rjxgc.com 壹玖零Tech
    搜罗各种前后端奇淫技巧,花式编程思想,日日更新,速来围观吧...

    相关文章

      网友评论

          本文标题:JS快排

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