排序算法的学习暂告一段落了,算法与数据结构的学习才刚刚开始,加油!
排序算法中以冒泡,选择,插入排序最为基础,归并,快速,堆排序最为实用,shell排序是分组插入排序,适合在数据量不大的环境下使用。计数,基数,桶排序均对输入序列有某种假设,且需要一定的额外存储空间,非in place排序算法。
| 排序算法 | 平均时间 | 最差时间 | 稳定度 | 额外空间 | 备注说明 |
| 冒泡排序 | O(n2) | O(n2) | 稳定 | O(1) | n小时较好 |
| 选择排序 | O(n2) | O(n2) | 不稳定 | O(1) | n小时较好 |
| 插入排序 | O(n2) | O(n2) | 稳定 | O(1) | n小时较好 |
| 归并排序 | O(nlogn) | O(nlogn) | 稳定 | O(n) | n大时较好 |
| 快速排序 | O(nlogn) | O(n2) | 不稳定 | O(logn) | n大时较好 |
| 堆排序 | O(nlogn) | O(nlogn) | 不稳定 | O(1) | n大时较好 |
| 计数排序 | O(n) | O(n) | 稳定 | O(n+k) | 输入序列限制 |
| 基数排序 | O(n) | O(n) | 稳定 | O(n+k) | 输入序列限制 |
| 桶排序 | O(n) | O(n) | 稳定 | O(n) | 输入序列限制 |
本文介绍了常用的排序算法,包括冒泡、选择、插入等基础算法,以及归并、快速、堆等实用算法。此外还探讨了计数、基数、桶排序等特定场景下使用的排序方法,并对比了它们的时间复杂度、稳定性及空间复杂度。
1717

被折叠的 条评论
为什么被折叠?



