数据结构:第八章学习小结
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 外部排序
冒泡排序:
快速排序的划分
心得体会:
这一章讲述了内部排序的许多方法,每一种方法都有着对应的优缺点,在使用时要注意区分。
因为考试周的来临,对待这一章的学习认真程度不够,也不够专注,有些浮躁。这一点需要多注意,对缺失的知识学习要及时补,要及时弄熟弄懂。
虽然数据结构的学习进度已经完成,但还是有许多不足的点,特别是代码的实现能力,希望能够在暑期锻炼自己,缺什么补什么。