内部排序总结
温故而知新!
分类:
1. 插入排序
思想:其基本操作为将一个记录插入到已排好序的有序表中,从而使有序序列增1
- 直接插入排序:基于顺序查找而得到插入位置
- 折半插入排序:基于折半查找而得到插入位置(仅减少关键字比较次数)
二者的记录移动次数相等,所以时间复杂度均为O(n^2)
直接插入排序伪代码:
2. 交换排序:
- 冒泡排序
- 快速排序(对冒泡的改进)
前者平均复杂度O(n^2),后者平均复杂度O(nlogn)
3. 选择排序:
基本思想:每一趟在n-i+1个记录中选出关键字最小的记录并作为有序记录中的第i个记录。
- 简单选择排序:通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i (1<= i <= n)个记录交换之。O(n^2)
- 堆排序
4. 归并排序
时间复杂度:O(nlogn);空间复杂度:O(n);稳定的排序算法
清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己
-- 共勉