数据结构:第八章学习小结

 1 概述
 2     待排序记录的存储方法
 3     排序算法的效率评价指标
 4         时间效率
 5             排序速度(比较次数与移动次数)
 6         空间效率
 7             占内存辅助空间的大小
 8         稳定性
 9             A和B的关键字相同,在排序之后先后顺序保持不变
10 
11 内部排序
12     插入排序
13         直接插入排序
14             利用顺序查找
15                 查找
16                     循环结束表明R[i]的插入位置在j+1
17                 后移
18                     注意第二个for中,若把<改为<=,那么相等的两个数就会调换位置,会变为不稳定
19                 插入
20             最坏情况下,第i趟比较i次,移动i+1次
21         折半插入排序
22             利用折半查找
23                 减少了比较的次数,但并没有减少移动次数
24                 是一种稳定的排序方法
25     交换排序
26         两两比较,如果发生逆序则交换,直到所有记录都排好序为止
27             冒泡排序
28                 每趟不断将记录两两比较,并按照”前小后大规则交换
29                 第i趟确定了a[n-i+1]
30                 比较次数和移动次数与初始排列有关
31                 最坏情况下,需要n-1趟排序,第i趟比较n-i次,移动3(n-i)次
32             快速排序
33                 任取一个元素为中心,比它小的往前方,大的往后放,形成左右两个子表
34                 如果待排序记录的初始状态为按关键字有序时,快速排序将蜕化为冒泡排序。为了避免这种情况要进行预处理。
35                 稳定性:不稳定,交换时会打乱前后顺序
36     选择排序
37         简单选择排序
38             底层的存储结构,必须是数组
39             移动次数
40                 最好:0
41                 最坏情况:3(n-1)
42             稳定性
43                 非相邻交换,所以不稳定
44         堆排序
45             注意:满足一定条件才能成为堆
46             要不断检查非终端结点
47             基本思想
48                 将无序列表建成一个堆
49                 输出堆顶的最小(大)值
50                 使剩余的n-1个元素又调整成一个堆,则可得到n个元素的次小值
51                 重复执行,得到一个有序序列
52             不断输出-调整,n-1次
53     归并排序
54         思想
55             将两个或两个以上的有序子序列“归并”为一个有序序列
56         操作
57             将两个位置相邻的记录有序子序列
58             归并为一个记录的有序序列
59 
60 外部排序
思维导图文字版

冒泡排序:

快速排序的划分

心得体会:

这一章讲述了内部排序的许多方法,每一种方法都有着对应的优缺点,在使用时要注意区分。

因为考试周的来临,对待这一章的学习认真程度不够,也不够专注,有些浮躁。这一点需要多注意,对缺失的知识学习要及时补,要及时弄熟弄懂。

虽然数据结构的学习进度已经完成,但还是有许多不足的点,特别是代码的实现能力,希望能够在暑期锻炼自己,缺什么补什么。

posted @ 2020-07-12 11:29  钟静宜  阅读(222)  评论(0编辑  收藏  举报