插入排序
- 直接插入排序
- 折半插入排序
- 希尔排序
习题:
交换排序
- 冒泡排序
- 快速排序:通常设第一个为基准元素,通过一趟排序可划分为独立的两部分“小于基准元素” 基准元素 “大于等于基准元素”
习题:
选择排序
- 简单选择排序
- 堆排序
堆排序相关习题:
建堆
Key: 从最后一个分支结点 n/2」开始检查调整
堆排序
Key:每一趟将堆顶与待排序列最后一个元素交换;并将待排序列重新调整成(大/小)堆
堆的插入
Key:将新元素放表尾,根据大/小根堆的要求,新元素不断上升,直至无法上升为止
堆的删除
Key:被删除的元素用堆底元素替代,根据大/小根堆的要求,替代元素不断下坠,直至无法下坠为止
归并排序
分解:将含有n个元素的待排序表分成各含n/2个元素的子表
合并:将前后相邻的两个有序表归并为一个有序表
基数排序