20230407 10.4. 排序算法的比较
排序算法比较
排序方法 | 平均时间复杂度 | 最坏情况下时间复杂度 | 额外空间复杂度 | 稳定性 |
---|---|---|---|---|
简单选择排序 | \(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^d)\) | \(O(N^2)\) | \(O(1)\) | 不稳定 |
堆排序 | \(O(NlogN)\) | \(O(NlogN)\) | \(O(1)\) | 不稳定 |
快速排序 | \(O(NlogN)\) | \(O(N^2)\) | \(O(logN)\) | 不稳定 |
归并排序 | \(O(NlogN)\) | \(O(NlogN)\) | \(O(N)\) | 稳定 |
基数排序 | \(O(P(N+B))\) | \(O(P(N+B))\) | \(O(N+B)\) | 稳定 |
Java 关联
- Arrays.sort