【发布时间】:2026-02-12 23:05:02
【问题描述】:
稳定排序算法比不稳定排序算法慢。例如golang 使用O(n*log(n)*log(n)) 调用来交换元素。
如果我们的目标是保留元素的原始顺序,为什么不将它们全部编号 (O(n)),然后使用原始索引进行不稳定排序 (O(n*log(n))) 以解决比较相等的实例。
这似乎更快。
即O(n) + O(n*log(n)) < O(n*log(n)*log(n))
这是正确的吗? 有什么理由更喜欢稳定的排序吗?
【问题讨论】:
-
当然,您可以对所有内容进行编号。花费 O(n) 时间和 O(n) 额外内存。