小编典典

Java的排序算法是什么

algorithm

OpenJDK如何在内部对数据类型进行排序,为什么?如果能提到具体算法,那将是很棒的


阅读 264

收藏
2020-07-28

共1个答案

小编典典

从版本7开始,Oracle的Java实现将Timsort用于大于10个元素的对象数组,将Insertion排序用于小于该元素数量的数组。Arrays.sort()和都适用相同的考虑因素Collections.sort()。在Java的旧版本中,使用Merge
sort
代替Timsort。

该语言的其他实现(除Oracle之外)可能使用不同的排序算法,因为该规范未强制要求这样做。引述Collections
文档

此类中包含的多态算法文档通常包括对实现的简短描述。此类描述应被视为实现说明,而不是说明书的一部分。只要遵守规范本身,实现者就可以随意替换其他算法。(例如,sort使用的算法不必是mergesort,但必​​须是稳定的。)

为了对数字基元进行排序,JDK 7 使用“双枢轴快速排序”。

2020-07-28