排序方法 | 时间复杂度(平均) | 时间复杂度(最坏) | 时间复杂度(最好) | 空间复杂度 | 稳定性 | 比较次数(最坏) | 比较次数(最好) |
冒泡排序 | O(n2) | O(n2) | O(n) | O(1) | 稳定 | n(n - 1)/2 | n-1 |
选择排序 | O(n2) | O(n2) | O(n2) | O(1) | 不稳定 | n(n - 1)/2 | |
插入排序 | O(n2) | O(n2) | O(n) | O(1) | 稳定 | n(n - 1)/2 | n-1 |
希尔排序 | O(n1.3) | O(n1.5) | O(n) | O(1) | 不稳定 | ||
快速排序 | O(nlog2n) | O(n2) | O(nlog2n) | O(nlog2n) | 不稳定 | n(n - 1)/2 | |
归并排序 | O(nlog2n) | O(nlog2n) | O(nlog2n) | O(n) | 稳定 | 2n-1 | |
堆排序 | O(nlog2n) | O(nlog2n) | O(nlog2n) | O(1) | 不稳定 | ||
基数排序 | O(n*k) | O(n*k) | O(n*k) | O(n*k) | 稳定 | ||
二分法 | O(log2n) | ||||||
顺序查找 |
O(n) | ||||||
寻找最大项 |
O(n-1) |