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快排

    "快速排序"的思想,整个排序过程只需要三步: (摘抄:http://www.ruanyifeng.com/blog...

  • js实现快排

    function quick_sort(list, start, end) {if (start < end) {...

  • js 手写快排

  • JS实现插入排序、快排、二分查找法

    用JS实现插入排序 用JS实现快排 用JS实现二分查找法

  • 算法

    【原创】以下是自己写的某些算法的JS实现 快排 (一) 快排(二) 希尔排序 插排 二分插排 归并排序

  • js 快排与冒泡

    虽然说算法很复杂,但是在我的工作经验中,掌握这2个基本就够处理大部分前端业务工作(不要跟我抬杠哦,你要面试肯定不够...

  • JS手写快排quicksort

    递归:指在函数的定义中使用函数自身的方法; 排序算法的比较 术语解释 n:数据规模; 稳定:两个相等的值在排序前后...

  • js数组快排的实现原理

    一.我们平时在使用数组的排序的时候,都是调用的js自带的sort()方法;var arr = [5,1,8,1,2...

  • 快排

    快排代码

  • 快排

网友评论

      本文标题:JS快排

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