排序算法
冒泡排序、选择排序、插入排序
希尔排序
归并排序、快速排序
基数排序
性能
排序算法 | 最好时间复杂度 | 最坏时间复杂度 | 平均时间复杂度 | 空间复杂度 | 稳定性 |
---|---|---|---|---|---|
冒泡排序 | O(n) | O(n^ 2) | O(n^2) | O(1) | 稳定 |
选择排序 | O(n^ 2) | O(n^ 2) | O(n^2) | O(1) | 不稳定 |
插入排序 | O(n) | O(n^ 2) | O(n^2) | O(1) | 稳定 |
希尔排序 | 具体和增量序列有关 O(n^ (1.3~2)) | O(1) | 不稳定 | ||
快速排序 | nO(log n) | O(n^ 2) | nO(log n) | O(1) | 不稳定 |
归并排序 | nO(log n) | nO(log n) | nO(log n) | O(n) | 稳定 |
基数排序 | O(d(r+n)) | O(d(r+n)) | O(d(r+n)) | O(n+r) | 稳定 |
n代表待排序数据个数,d表示关键码个数,r表示关键码的取值范围