【发布时间】:2015-04-22 00:25:30
【问题描述】:
在 java 中,collections.sort 使用合并排序算法而不是快速排序。但是 Arrays.sort 使用快速排序。 (我不确定上述事实,但我在互联网上找到了这个,比如在CodeRanch 等网站上,如果他们不使用该算法,请告诉我)
现在我知道两种算法的平均复杂度是相同的。唯一的事实是快速排序最糟糕的是 O(n^2) 但这并不常见。 而且我们不关心当今世界的空间,所以归并排序不是就地算法并不重要。 但是我们关心稳定性,所以为什么我们对 array.sort 使用快速排序,因为它不是一个稳定的算法。是不是因为它只关心整数,但我不认为这是一个很好的理由。
【问题讨论】:
-
我以为他们都使用了 TimSort。我需要检查源代码。
-
哦,你确定我是在网上找到的。
-
@ArjunChaudhary “我在互联网上发现的”非常没有帮助。你在哪里找到的?
-
@dimo414 这里有东西给coderanch.com/t/520171/java/java/…
标签: java algorithm sorting collections