【发布时间】:2011-04-12 01:17:57
【问题描述】:
Java 6 的Arrays.sort 方法对基元数组使用快速排序,对对象数组使用合并排序。我相信大多数时候快速排序比合并排序更快,并且消耗更少的内存。我的实验支持这一点,尽管两种算法都是 O(n log(n))。那么为什么不同的类型使用不同的算法呢?
【问题讨论】:
-
快速排序最坏的情况是 N^2 而不是 NlogN。
-
等等,如果你有一个
Integers 或其他东西的数组会发生什么? -
这不是在您阅读的资料中在中解释的吗?
-
此信息不再是最新的。从 Java SE 7 开始,MergeSort 已替换为 TimSort,QuickSort 已替换为 Dual-Pivot QuickSort。有关 Java API 文档的链接,请参阅下面的答案。
标签: java algorithm quicksort mergesort