<分区>
Possible Duplicate:
Why java Arrays use two different sort algorithms for different types?
所以我正在阅读数组 doc关于各种排序实现。我注意到一些实现使用了经过调整的快速排序,而其他实现使用了修改后的合并排序。为什么会出现差异?
谢谢!
<分区>
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/