提示
仅供个人回顾参考
基本概念
- 排序
- 输入
- 输出
- 算法的稳定性
插入排序
- 定义
- 待排序关键字插入到已排好序的子序列中
- 引申: 直接插入排序, 折半插入排序和希尔排序
- 直接插入排序
- 算法分析
- 时间复杂度:
- 稳定性: 稳定
- 适应性: 顺序存储和链式存储
- 算法分析
- 折半插入排序
- 算法分析
- 时间复杂度:
- 稳定性: 稳定
- 算法分析
- 希尔排序
- 算法分析
- 空间复杂度:
- 时间复杂度: 数学上难题, 最坏情况下
- 算法分析
交换排序
- 冒泡排序
- 算法分析
- 时间复杂度:
- 稳定性: 稳定
- 算法分析
- 快速排序
- 内部排序中平均性能最优的排序算法
- 提高效率
- 枢轴元素选取尽量选中分的元素
- 或者随机选
- 尽量两个子问题平衡划分
- 算法分析
- 时间复杂度:最坏情况下
- 稳定性: 不稳定
归并排序
- 算法分析
- 空间效率:
- 时间效率:
- 稳定性: 2路归并排序稳定
基数排序
- 最高位优先MSD
- 最低位优先LSD
内部排序算法应用
外部排序
-
定义
- 大文件多次内存与外存交换数据,排序
-
多路归并与败者树
-
置换-选择排序
-
最佳归并树