排序算法对比
- 这里的平均情况、最好情况、最坏情况指的是时间复杂度
排序方法 | 平均情况 | 最好情况 | 最坏情况 | 空间复杂度 | 稳定性 |
---|---|---|---|---|---|
直接插入排序 | O(n^2) | O(n) | O(n^2) | O(1) | 稳定 |
Shell排序 | O(n^1.3) | O(n) | O(n^2) | O(1) | 不稳定 |
直接选择 | 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(nlogn) | O(nlogn) | O(n^2) | O(nlogn) | 不稳定 |
归并排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(n) | 稳定 |
基数排序 | O(d(r+n)) | O(d(n+rd)) | O(d(r+n)) | O(rd + n) | 稳定 |
- 判断一个排序是否稳定,取决于排序的时候是否改变
相同数字
之间的相对顺序