常用排序算法小结:
| 排序算法 | 最差时间复杂度 | 最好时间复杂度 | 平均时间复杂度 | 稳定度 | 空间复杂度 |
|---|---|---|---|---|---|
| 交换排序->冒泡排序 | O(N^2) | O(N) | O(N^2) | 稳定 | O(1) |
| 交换排序->快速排序 | O(N^2) | O(NlogN) | O(NlogN) | 不稳定 | O(logN)~O(N) |
| 选择排序->直接选择排序 | O(N^2) | O(N^2) | O(N^2) | 不稳定 | O(1) |
| 选择排序->堆排序 | O(NlogN) | O(NlogN) | O(NlogN) | 不稳定 | O(1) |
| 插入排序->直接插入排序 | O(N^2) | O(N) | O(N^2) | 稳定 | O(1) |
| 插入排序->希尔排序 | O(N^2) | O(N) | O(N^1.3) | 不稳定 | O(1) |
| 归并排序 | O(NlogN) | O(NlogN) | O(NlogN) | 稳定 | O(N) |
| 基数排序 | O(d(n+r)) | O(d(n+r)) | O(d(n+r)) | 稳定 | O(n+r)) |
注:
1. 基数排序,r代表关键字基数,d代表长度(位数),n代表关键字个数
本文总结了多种常用的排序算法,包括冒泡排序、快速排序、直接选择排序、堆排序、直接插入排序、希尔排序、归并排序及基数排序等。详细介绍了它们的时间复杂度、稳定性、空间复杂度等特点。





