Java:Arrays.sort 快速排序和归并排序

标签 java sorting

<分区>

Possible Duplicate:
Why java Arrays use two different sort algorithms for different types?

所以我正在阅读数组 doc关于各种排序实现。我注意到一些实现使用了经过调整的快速排序,而其他实现使用了修改后的合并排序。为什么会出现差异?

谢谢!

最佳答案

快速排序用于基本类型的数组,而归并排序用于 Object[] 数组。

归并排序用于归并排序稳定的对象的主要原因 - 它不会对相等的元素重新排序:http://en.wikipedia.org/wiki/Sorting_algorithm#Stability

对于原语,排序的稳定性是没有意义的,因为您无法区分两个相等的值。因此,使用快速排序(对对象数组进行排序时除外,为此执行合并排序)。而且,quicksort可以就地完成,所以不需要再分配一个数组。

关于Java:Arrays.sort 快速排序和归并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10251573/

相关文章:

c++ - 通过安排任务最大化分数

linux - 为什么 linux sort 没有给我想要的结果?

javascript - 单击 Javascript 中的标题,按升序和降序对表格进行排序

c - 反转从文件加载的 1GB 字符串

java - 将图像(与 Swing 兼容)从 Java 序列化到 Android 的最佳方法是什么?

java - 使用 jenkins 将 war 文件部署到 jetty

java - 从库返回 Java Future 的最佳实践

c++ - 使用 std::sort() 和 lambda 函数按属性对 ADT 的 vector 进行排序时遇到问题

java - JTable 中 fireTableDataChanged 的​​奇怪行为

java - quickfix.InvalidMessage 即使有有效消息也会抛出异常