javascript - 对于我的快速排序算法,如何才能对字符串和对象进行排序?

标签 javascript quicksort

我的快速排序工作正常,代码在这里:

https://gist.github.com/RoloRobot/b2e15af9ab0d8c1bdbdd

我想做的是让它不仅对数字进行排序,还对字符串和对象进行排序。我该怎么做呢?任何帮助将不胜感激,谢谢!

最佳答案

您可以创建一个不同的compare函数,并将其提供给您的quickSort

// numbers or strings
quickSort(array, left, right, (a, b) => a < b)

// custom objects comparison (by foo key)
quickSort(array, left, right, (a, b) => a.foo < b.foo)

如果您不想手动设置它们,您可以自动检测类型:

if (typeof item === 'string') { compare = compareStrings; }

关于javascript - 对于我的快速排序算法,如何才能对字符串和对象进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33906989/

相关文章:

javascript - 重新格式化数组以实现 jquery 自动完成

javascript - 用鼠标滚轮滚动时 Chrome 闪烁,将 div 重新定位到 $(document).scrollTop()

algorithm - 什么时候合并排序优先于快速排序?

c++ - 为什么 In-place QuickSort 比 C++ 中的普通版本慢?

javascript - 从服务传递值

javascript - d3 v4 从 CSV 堆叠到分组条形图

javascript - 如果变量为 false 将在 Javascript 中传递

这个 "attack"是否真的会导致快速排序降级为二次运行时间,即使项目已被随机打乱?

mysql - mysql中如何根据时区平均分配用户帐户?

c - C中数组的递归函数