【Algorithm】排序(Sorting)算法

Posted by 西维蜀黍 on 2019-06-25, Last Modified on 2024-01-23

排序算法的比较

算法 平均时间复杂度 最好时间复杂度 最坏时间复杂度 空间复杂度 排序方式 稳定性 备注
冒泡排序 $O(N^2)$ $O(N)$ $O(N^2)$ $O(1)$ In-place 稳定
选择排序 $O(N^2)$ $O(N^2)$ $O(N^2)$ $O(1)$ In-place 稳定
插入排序 $O(N^2)$ $O(N)$ $O(N^2)$ $O(1)$ In-place 稳定 时间复杂度和初始顺序有关
希尔排序(Shell Sort) $O(Nlog_2N)$ $O(Nlog_2N)$ $$O(N^2)$ $O(1)$ In-place 不稳定 改进版插入排序
归并排序(Merge Sort) $O(Nlog_2N)$ $O(Nlog_2N)$ $O(Nlog_2N)$ $O(N)$ Out-place 不稳定
快速排序 $O(Nlog_2N)$ $O(Nlog_2N)$ $O(N^2)$ $O(1)$ In-place 不稳定
堆排序(Heap Sort) $O(Nlog_2N)$ $O(Nlog_2N)$ $O(Nlog_2N)$ $O(1)$ In-place 不稳定
桶排序 (bucke sort) O(N) O(N) $O(N^2)$ or $O(Nlog_2N)$ $O(N)$ Out-place 稳定 最坏时间复杂度取决于对于桶内元素进行排序的算法

冒泡排序(Bubble Sort)

https://swsmile.info/post/algorithm-sort-bubble-sort/

选择排序(Selection Sort)

https://swsmile.info/post/algorithm-sort-selection-sort/

插入排序(Insertion Sort)

https://swsmile.info/post/algorithm-sort-insertion-sort/

希尔排序(Shell Sort)

https://swsmile.info/post/algorithm-sort-shell-sort/

归并排序(Merge Sort)

https://swsmile.info/post/algorithm-sort-merge-sort/

快速排序(Quick Sort)

https://swsmile.info/post/algorithm-sort-quick-sort/

堆排序(Heap Sort)

https://swsmile.info/post/algorithm-sorting-heap-sort/

桶排序(Bucket Sort)

https://swsmile.info/post/algorithm-sort-bucket-sort/

计数排序(Counting Sort)

https://swsmile.info/post/algorithm-sort--counting-sort/