1. 什么是排序?
就是重新排列表中的元素,使得表中的元素满足按关键字有序的过程。
2. 有哪些排序算法类型?
- 内部排序:数据都在内存中。
- 外部排序:数据太多,无法全部放入内存。
3. 内部排序算法有哪些?
交互排序 | 插入排序 | 选择排序 | 归并排序 | 基数排序 |
---|---|---|---|---|
冒泡排序 | 插入排序 | 简单选择排序 | 归并排序 | 基数排序 |
快速排序 | 希尔排序 | 堆排序 |
时间复杂度、空间复杂度、稳定性、适用范围等如下所示:
算法类型 | 冒泡排序 | 快速排序 | 插入排序 | 希尔排序 | 简单选择排序 | 堆排序 | 归并排序 | 基数排序 |
---|---|---|---|---|---|---|---|---|
空间复杂度(最坏) | O(1) | O(n) | O(1) | O(1) | O(1) | O(1) | O(n) | O® |
时间复杂度(最坏) | O(n^2) | O(n^2) | O(n^2) | O(n^2) | O(n^2) | O(nlog2(n)) | O(nlog2(n)) | O(d*(n+r)) |
时间复杂度(平均) | O(n^2) | O(nlog2(n)) | O(n^2) | O(n^2) | O(n^2) | O(nlog2(n)) | O(nlog2(n)) | |
稳定性 | 稳定 | 不稳定 | 稳定 | 不稳定 | 不稳定 | 不稳定 | 稳定 | 稳定 |
适用性 | 顺序表和链表 | 顺序表和链表 | 顺序表和链表 | 顺序表 | 顺序表和链表 | 顺序表和链表 | 顺序表和链表 | 链表 |
4. 外部排序算法有哪些?
- 归并排序
- 多路平衡归并
- 败者树
- 置换-选择排序
- 最佳归并树
可查阅 排序算法-四种常用外部排序算法