排序 | 简述 | 最好/最坏/平均时间复杂度 | 空间复杂度 | 稳定性 |
---|---|---|---|---|
冒泡排序 | 相邻元素两两比较 | O(n)/O( n 2 n^2 n2)/O( n 2 n^2 n2) | O(1) | √ |
选择排序 | 找整组最小再与交换 | O( n 2 n^2 n2) | O(1) | × |
插入排序 | 前n项永远是有序的 | O(n)/O( n 2 n^2 n2)/O( n 2 n^2 n2) | O(1) | √ |
希尔排序 | 分组直接插入排序,基本有序 | O( n 1.3 − 2 n^{1.3-2} n1.3−2) | O(1) | × |
归并排序 | 分治到底再合并 | O(nlog(n)) | O(n) | √ |
快速排序 | 分治,选取基准,大放右小放左 | O(nlog(n)) /O( n 2 n^2 n2)/ O(nlog(n)) | O(1) | × |
堆排序 | 最后的元素与堆顶交换再维护堆 | O(nlog(n)) | O(1) | × |
计数排序 | 用于数字重复较多 | O(n+k) | O(n) | √ |
桶排序 | 大范围分类,小范围排序 | O(n) | O(n+k) | 看排序的稳定性 |
算法排序总结
最新推荐文章于 2024-07-20 09:21:06 发布