algorithm - 在时间 O(n) 中运行并就地排序的排序算法

标签 algorithm sorting

有没有运行时间为O(n)并且可以原地排序的排序算法?

最佳答案

有一些最佳情况是 O(n),但这可能是因为项目集合已经排序。您正在查看一些更好的平均 O(n log n)。

话虽如此,关于排序算法的 Wiki 还是相当不错的。有一张表格比较了流行的算法,说明了它们的复杂性、内存要求(表明算法是否可能“就位”),以及它们是否将等值元素保留在其原始顺序(“稳定性”)。

此表(来自上述 Wiki)提供了一些更有趣的性能观察:

有些显然比其他的更容易实现,但我猜测值得实现的那些已经在您选择的库中完成了。

关于algorithm - 在时间 O(n) 中运行并就地排序的排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5688484/

相关文章:

Javascript 函数不会在给定条件下终止

algorithm - 包含区域算法之间的内部关系

java - 查找排序数组中整数出现的边界的问题 (Java)

javascript - d3.layout.pack 在升序排序时堆叠圆圈

algorithm - 求和最大的最长递增子序列

algorithm - 具有动态边成本的最短路径(算法)

java - 允许所有工作人员使用全局消费率的队列服务器

python - 按值对字典进行排序,然后将排序后的值附加到文本文件中

php - 是否可以使快速排序函数对数组进行降序排序?

c++ - 如何使用 std::lower_bound 比较没有第二个对象的对象变量