Arrays.sort实现,具体做什么

时间:2013-07-31 20:01:38

标签: java sorting

Arrays.sort在Java中使用什么排序算法?它会根据操作系统或输入大小等动态变化吗?

3 个答案:

答案 0 :(得分:4)

您可以从源代码中看到它在OpenJDK上的作用。对于基本类型,它使用短数组的插入排序和较长的数组的修改快速排序;和对象数组的时间排序。

Java 6 Arrays.sort()

我没有看到操作系统如何影响排序。

答案 1 :(得分:0)

查看Arrays.sort的文档:

  

实施说明:此实施是稳定的,适应性的,   迭代合并,需要远远少于n lg(n)的比较   当输入数组部分排序时,同时提供   输入数组时传统mergesort的性能   随机排序。如果输入数组几乎排序,那么   实施需要大约n次比较。临时存储   要求从几乎排序的输入数组的小常量变化   对于随机排序的输入数组的n / 2个对象引用。

     

实施同样有利于升序和降序   在其输入数组中排序,并可以利用升序和   在同一输入数组的不同部分中降序排列。它是   非常适合合并两个或多个排序数组:简单地连接   数组并对结果数组进行排序。

     

该实现改编自Tim Peters的Python列表   (TimSort)。它使用了Peter McIlroy的“乐观排序”中的技术   和“信息理论复杂性”,“第四次会议论文集”   年度ACM-SIAM离散算法研讨会,第467-474页,1月   1993。

查看源代码:Arrays.sort

答案 2 :(得分:0)

sort方法已超载。

对于Java 7,请查看从here开始的更多类型的实现说明。