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 是数组中的元素总数。

快速排序(QuickSort)

归并排序(MergeSort)

TimeSort(归并排序的改进版,世界上最快的排序算法)

堆排序(HeapSort)

冒泡排序(Bubble Sort)

插入排序(Insertion Sort)

选择排序(Selection Sort)

树型排序(Tree Sort)

希尔排序(Shell Sort)

桶排序(Bucket Sort)

基数排序(Radix Sort)

计数排序(Counting Sort)

CubeSort

二、排序算法复杂度汇总

array-sorting-algorithms-complexity

∞、参考链接