有没有好用的快速排序的库?
发布于 6 年前 作者 bsspirit 2750 次浏览 最后一次编辑是 4 年前

除了支持普通数组的排序,还要支持数组对象的排序。

从小到大: [1,3,2,5] ==> [1,2,3,5] 按年龄从小到大: [{name:‘b’,age:12},{name:‘c’,age:21},{name:‘a’,age:2}] ==> [{name:‘a’,age:2},{name:‘b’,age:12},{name:‘c’,age:21},]

underscore 和 async 虽然都有sortby() 函数支持,但还是不太好用。

7 回复

花了一个小时,自己写了一个支持数组对象的快速排序的库。 https://github.com/bsspirit/ape-algorithm

原生的不行?

[].sort(function (a, b) {
  return a.age > b.age;
});

好厉害,比原生的效率如何呢?

原生的实现方式可能因浏览器不同而不同, 不一定用快速排序

@bsspirit 插入排序时间复杂度都平方了,为什么不用堆排序替代之 ? :)

每种算法都有适用的情况,我当时的情况,就是前端表格排序,普通的快速排序就已经适合了。 等我用到堆排序的时候,基于框架实现个算法也并不麻烦。

回到顶部