目前正在学习自考资料《数据结构》米老师说,现在这个阶段,最重要的就是总结归纳,编织自己的知识网!虽然当时理解了懂了,但还是架不住时间的侵蚀,所以,总结归纳是让所学知识融入自身认知结构的重要组成部分,使自己的认知在“平衡-不平衡-新的平衡”的循环中不断丰富、提高和发展。
定义
排序就是将一组对象,按照规定的次序,进行重新排列的过程。它主要为检索服务!
分类
排序可分为两大类:内部和外部
内部:待排序的记录全部存放在计算机内存中,然后进行排序的过程。
外部:待排序的记录数量很大,内存不能存储全部记录,需要对外存进行访问的排序过程。
在内部排序中可分为四类:插入、交换、选择和归并。下面一一为大家介绍一下:
插入
插入排序又可分为多种方法,本篇博客中只介绍直接插入排序(Straight Insertion Sorting)
的基本思想是,依次将每个记录插入到一个已排好序的有序表中去,从而得到一个新的、记录数增加1的有序表。
在直接插入排序算法的描述中,我们会设置“岗哨”。那么,这里的“岗哨”是什么意思?
上面的代码中,List型变量的第0个记录可以闲置或用来暂存某个记录值,可以用作“岗哨”。所以,使用R[0]有两个作用。
1、 进入查找循环之前,保存R[i]的值,使得不至于因记录的后移而丢失R[i]中的内容
2、 起到岗哨作用,在while循环中“