从版本7开始,Oracle的Java实现将Timsort用于大于10个元素的对象数组,将Insertion排序用于小于该元素数量的数组。
Arrays.sort()和都适用相同的考虑因素
Collections.sort()。在Java的旧版本中,使用Merge
sort代替Timsort。
该语言的其他实现(除Oracle之外)可能使用不同的排序算法,因为该规范未强制要求这样做。引述
Collections“
文档:
此类中包含的多态算法文档通常包括对实现的简短描述。此类描述应被视为实现说明,而不是说明书的一部分。只要遵守规范本身,实现者就可以随意替换其他算法。(例如,sort使用的算法不必是mergesort,但必须是稳定的。)
为了对数字基元进行排序,JDK 7 使用“双枢轴快速排序”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)