CNode

有没有好用的快速排序的库?

Bbsspirit发布于12 年前最后回复12 年前7 回复4896 浏览0 收藏

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

从小到大: [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)

B
bsspirit#1·12 年前

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

D
dead-horse#2·12 年前

原生的不行?

[].sort(function (a, b) {
  return a.age > b.age;
});
D
dlutwuwei#4·12 年前
引用 dead-horse原生的不行?

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

S
struCoder#5·12 年前

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

B
bsspirit#7·12 年前
引用 struCoder@bsspirit 插入排序时间复杂度都平方了,为什么不用堆排序替代之 ? :)

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

参与回复
登录后即可参与回复。登录