algorithm - 稳定、高效的排序?

标签 algorithm language-agnostic data-structures sorting

我正在尝试创建一个非常节省空间的不寻常的关联数组实现,我需要一个满足以下所有条件的排序算法:

  1. 稳定(不改变具有等键的元素的相对顺序。)
  2. 就地或几乎就地(O(log n) 堆栈很好,但没有 O(n) 空间使用或堆分配。
  3. O(n log n) 时间复杂度。

另请注意,待排序的数据结构是一个数组。

很容易看出有一个基本算法可以匹配这三个中的任意两个(插入排序匹配 1 和 2,归并排序匹配 1 和 3,堆排序匹配 2 和 3),但我一辈子都做不到找到符合所有这三个条件的任何内容。

最佳答案

我相信合并排序可以写成就地。这可能是最好的路线。

关于algorithm - 稳定、高效的排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/113025/

相关文章:

language-agnostic - 类型安全与静态类型?

java - Java 中的双端队列

Firebase 数据结构和 url

python - 如何获得无限数据结构?

algorithm - 找到给定 K 个最佳候选者的时间戳

c - 在处理并列情况的同时在矩阵中找到最大值 [在 C 中]

algorithm - 等簇大小的 K-means 算法变体

c++ - 用更少的内存在 C++ 中实现二维数组

math - float 学有问题吗?

javascript - GMail 喜欢我网站的重试行为