数据结构第八章小结

数据结构第章小结

一、知识点

1、基本概念

排序:按关键字非递增或非递减顺序对一组记录重新排序的操作。

1)内部排序与外部排序。
内部排序:整个排序过程不需要访问外存便能完成
外部排序:参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,需要借助外存

2)排序稳定性

稳定:冒泡排序、插入排序、归并排序、基数排序

不稳定:选择排序、快速排序、希尔排序、堆排序

(3)排序算法好坏标准

①时间复杂度:关键字之间的比较和记录

②空间复杂度:由排序算法所需的辅助空间决定

 

二、基本排序方法

 

1、插入排序

基本思想:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序

的一组记录的适当位置上,直到所有待排序记录全部插入为止。

1.1直接插入排序

思路:将第i个记录的关键字,顺次与其前面记录的关键字进行比较,(按排序要求来操作)若其他关键字大于第i个的,则依次向后移动一个位置,直到遇见一个关键字a小于或者等于该关键字,此时a出一个位置,将第i个记录插入空位置即可。

1.2折半插入排序

思路:利用“折半查找”来实现

1.3希尔排序

思路:分组排序;每趟取增量d,间隔为增量的为一组,分别进行直接插入排序, 待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。

 

2、交换排序

2.1 冒泡排序

思路:每趟对所有记录从左到右相邻两个记录进行比较,若不符合排序要求,则进行交换。

例:

 

2.2快速排序

思路:从待排序列中任取一个元素作为枢轴,所有比它小的元素一律前放,所有比它大的元素一律后放,形成左右两个子表;然后再对各子表重新选择枢轴并依此规则调整,直到每个子表的元素只剩一个。此时便为有序序列了。

例:

 

特点:当n较大时,其速度是内部排序中最快的。

 

3、选择排序

3.1简单选择排序

思路:数组a[1...n],第一趟从a[1]开始往后比较,找到最小的a[k]a[1]比较交换,第二趟从a[2]开始往后找,规则同上,直到排序完。

3.2堆排序

1)调整堆  2)建初堆  3)堆排序实现

特点:只用于顺序结构

 

4、归并排序

思路:假设初始序列含有 n 个记录,首先将这 n 个记录看成 n 个有序的子序列, 每个子序列的长度为 1,然后两两归并,得到[2/n]个长度为 2n 为奇数时,最后一个序列的长度为 1)的有序子序列。再两两归并...…如此重复,直至得到一个长度为n 的有序序列为止

特点:可用于链式结构,不需要附加存储空间,递归时仍要开辟递归工作栈。

 

三、心得体会

 

没想到这么快就一个学期上完了,这么快就要期末考了,这周写PTA的作业时,选择,判断题还是要想那么好一会呢,而且一些概念性的问题真是考验知识点掌握熟不熟悉啊。在写作业的代码时,已经两次发现出现段错误这种情况时不知道怎么改代码了,有时改了数组的长度也不行呢。最最最后,希望考试能顺顺利利吧。

posted on 2020-07-11 18:14  罗鸾怡  阅读(182)  评论(0编辑  收藏  举报