有没有好用的快速排序的库?
 发布于 11 年前  作者 bsspirit  4750 次预览  最后一次回复是 11 年前  来自  

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

从小到大: [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 回复
bsspirit

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

dead-horse

原生的不行?

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

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

dlutwuwei

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

struCoder

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

bsspirit

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