Java集合中的排序API分析

1,Arrays类中的静态排序API

Arrays.sort(int[] a)中的排序是用的是快速排序,时间复杂度是O(nlogn)

Java集合中的排序API分析_第1张图片

Arrays.sort(T[],Comparator c)使用的是归并排序,归并排序是稳定的,当c=null时按自然序排列

Java集合中的排序API分析_第2张图片

2,Collections静态排序API,Collections的排序都是稳定的

Collections.sort(List list)、和Collections.sort(List list,Comparator<?super T> c);使用的排序是稳定的,主要是对list排序,不知道是什么排序方法,源码看不到

Java集合中的排序API分析_第3张图片


Java集合中的排序API分析_第4张图片


3,ArrayList的排序API

list.sort(Comparator c);对list排序,当c=null时,按自然序排列

Java集合中的排序API分析_第5张图片


总结一哈方便记忆:

1,对list排序,可以使用list自己的sort方法,也可以使用Collections的静态排序方法,且Collections的排序方法都是稳定的

2,Arrays的静态sort,一个是快排,一个归并排序(稳定的)



你可能感兴趣的:(Data,Structure,数据结构与算法(java))