1. 排序算法一表总览
排序算法 | 最好时间复杂度 | 最坏时间复杂度 | 平均时间复杂的 | 空间复杂度 | 排序方式 | 稳定性 |
---|---|---|---|---|---|---|
快速排序 | O ( n log n ) O(n\log n) O(nlogn) | O ( n 2 ) O(n^2) O(n2) | O ( n log n ) O(n\log n) O(nlogn) | O ( log n ) O(\log n) O(logn) | 交换 | 不稳定 |
计数排序 | O ( k + n ) O(k + n) O(k+n) | O ( k + n ) O(k + n) O(k+n) | O ( k + n ) O(k + n) O(k+n) | O ( k + n ) O(k + n) O(k+n) | \ | 稳定 |
堆排序 | O ( n log n ) O(n\log n) O(nlogn) | O ( n log n ) O(n\log n) O(nlogn) | O ( n log n ) O(n\log n) O(nlogn) | O ( 1 ) O(1) O(1) | 选择 | 不稳定 |
归并排序 | O ( n log n ) O(n\log n) O(nlogn) | O ( n log n ) O(n\log n) O(nlogn) | O ( n log n ) O(n\log n) O(nlogn) | O ( n ) O(n) O(n) | \ | 稳定 |
希尔排序 | O ( n ) O(n) O(n) | O ( n 2 ) O(n^2) O(n2) | O ( n 1.3 ) O(n^{1.3}) O(n1.3) | O ( 1 ) O(1) O(1) | 插入 | 不稳定 |
插入排序 | O ( n ) O(n) O(n) | O ( n 2 ) O(n^2) O(n2) | O ( n 2 ) O(n^2) O(n2) | O ( 1 ) O(1) O(1) | 插入 | 稳定 |
冒泡排序 | O ( n ) O(n) O(n) | O ( n 2 |