一:排序概念:
排序其实是对关键字进行递增或递减顺序对一组记录重新进行排列的操作。即已知一序列,对其中的关键字进行从有序表到有序表的转换。
二:排序分类:
依据排序过程中记录多占用的存储设备进行分类,结构见下图:
冒泡排序模型:前提对一无序表中10个数进行排序
循环设计:
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
选择排序模型:
循环设计:
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9
4 5 6 7 8 9
5 6 7 8 9
6 7 8 9
7 8 9
8 9
9
插入排序模型:
循环设计:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
三:算法分析
- 待排序的记录个数
- 记录本身大小
- 关键字的结构基初始状态
- 对排序稳定性的要求
- 存储结构
对于算法的改进可以从时间复杂度和这空间复杂度两个方面考虑
简单介绍一下:(来源百度百科)
时间复杂度和空间复杂度统称为算法复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。
'排序算法的时间复杂度动态示意图