Sorting Algorithms - tenji/ks GitHub Wiki
排序算法
一、常用的排序算法汇总
- 快速排序(QuickSort)
- 归并排序(MergeSort)
- TimeSort(归并排序的改进版,世界上最快的排序算法)
- 堆排序(HeapSort)
- 冒泡排序(Bubble Sort)
- 插入排序(Insertion Sort)
- 选择排序(Selection Sort)
- 树型排序(Tree Sort)
- 希尔排序(Shell Sort)
- 桶排序(Bucket Sort)
- 基数排序(Radix Sort)
- 计数排序(Counting Sort)
- CubeSort
TimeSort 和归并排序的区别?
TimSort 算法是一种起源于归并排序和插入排序的混合排序算法,设计初衷是为了在真实世界中的各种数据中可以有较好的性能。原则上 TimSort 是归并排序,但小片段的合并中用了插入排序。
Java 中使用的是什么排序算法?
从 Java 8 开始,Arrays.sort
使用两种排序算法。一种是快速排序的改进版,称为 dual-pivot quicksort
,另一个是 MergeSort 的改编版本,名为 TimSort。两者的时间复杂度均为 $O(nlog_ n)$,其中 n 是数组中的元素总数。