基于最近笔试遇到很多求解复杂度的问题,在这只是归纳总结一下,便于记忆:
排序算法 | 时间复杂度(平均情况) | 时间复杂度(最坏情况) | 空间复杂度 | 稳定性 |
选择排序法 | O(n^2) | O(n^2) | O(1) | 不稳定 |
插入排序法 | O(n^2) | O(n^2) | O(1) | 稳定 |
折半插入排序法 | O(n^2) | O(n^2) | O(1) | 不稳定 |
希尔排序法 | O(n^1.25) | O(n^1.25) | O(1) | 不稳定 |
冒泡排序法 | O(n^2) | O(n^2) | O(1) | 稳定 |
快速排序法 | O(nlog2n) | O(n^2) | O(nlog2n) | 不稳定 |
堆排序法 | O(nlog2n) | O(n^2) | O(1) | 不稳定 |
归并排序法 | O(nlog2n) | O(n^2) | O(n) | 稳定 |
基数排序法 | O(n×d) | O(n×d) | O(n) | 稳定 |