排序算法性能比较
Guderian出品
类别 | 排序方法 | 时间复杂度 | 空间复杂度 | 稳定性 | |
---|---|---|---|---|---|
平均情况 | 最坏情况 | ||||
插入排序 | 直接插入 | O(n2) | O(n2) | O(1) | 稳定 |
希尔排序 | O(n1.3) |
O(n2) | O(1) | 不稳定 | |
选择排序 | 直接选择 | O(n2) | O(n2) | O(1) | 不稳定 |
堆排序 | O(nlogn) | O(nlogn) | O(1) | 不稳定 | |
交换排序 | 冒泡排序 | O(n2) | O(n2) | O(1) | 稳定 |
快速排序 | O(nlogn) | O(n2) | O(logn) | 不稳定 | |
归并排序 | O(nlogn) | O(nlogn) | O(n) | 稳定 | |
基数排序 | O(d(r+n)) | O(d(r+n)) | O(r+n) | 稳定 | |
桶排序 | O(2(m+n)) | O(2(m+n)) | O(max{key}) | 稳定 |
*注:基数排序中,d表示关键字的位数长度,r表示关键字每一个数位有r中可能的取值
**注:桶排序中,m表示桶的个数