因此,我正在阅读有关各种排序实现的 Arrays文档。我注意到一些实现使用了调整过的快速排序,而另一些则使用了修改后的合并排序。为什么会出现差异?
谢谢!
快速排序用于原始类型数组,而合并排序用于 Object[] 数组。
合并排序用于合并排序稳定的对象的主要原因 - 它不会重新排序相等的元素:http ://en.wikipedia.org/wiki/Sorting_algorithm#Stability
对于原语,排序的稳定性是没有意义的,因为您无法区分两个相等的值。因此,使用了快速排序(除非对对象数组进行排序,对其执行合并排序)。此外,快速排序可以就地完成,因此无需分配另一个数组。