********2019-2020-1 《数据结构与面向对象程序设计》第八周学习总结
教材学习内容总结
查找:
- 顺序查找:
- 顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位。适用于线性表的顺序存储结构和链式存储结构。
- 缺点:查找效率低。
- 二分查找:
- 将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。
优点:高效。明显减少比较次数,提高查找效率
缺点:折半查找的先决条件是查找表中的数据元素必须有序。
- 将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。
- 哈希值查找:
- 若关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数,按这个思想建立的表为散列表。
- 冲突:两个不同关键字对应同一个内存地址
- 开放地址法:线性探测再散列,若关键字对应地址非空,向后移位直到找到空地址存入,查找步骤与之相同。
- 链地址法:将存储空间定义为链表数组,每一个存储空间都代表一个链表的表头,若出现冲突,直接延长链表的长度,查找顺序与存入顺序相同。
排序:
排序衡量标准:相同元素排序后先后次序是否发生变化
- 插入排序:利用双重循环和插入,逐渐将整个表从前向后实现有序排列。
- 折半插入排序:对插入排序的改良,将线性探索改为折半探索
- 希尔排序
- 快速排序:根任意元素划分表,再递归的对两个子表进行排序,从而完成一整组的排序。
- 冒泡排序和选择排序
- 归并排序:先递归的把表对分成每个子表只含一个元素,再将子表按序合并。
- 基数排序
代码调试中的问题和解决过程
1.排序比较:
代码托管
上周考试错题总结
上周莫得考试
反思:
排序学的不太好,需要加大力度。
结对及互评
点评
- 博客中值得学习的:
- 教材学习内容概括行强,简介明了。
- 有自己动手打新代码,加入了很多个人的理解。
- 内容很充实,很用心,比上次进步了很多。
- 博客格式正确,运用了很多不同的方法,排版精美。
- 希望能在课本内容总结以及问题&解决过程中加入自己的思考,使博客内容更加充实。
基于评分标准,我给本博客打分12分:
得分情况如下:
正确使用Markdown语法(加1分)
模板中的要素齐全(加1分)
教材学习中的问题和解决过程(加2分)
代码调试中的问题和解决过程(加2分)
其他加分(加6分)
进度条中记录学习时间与改进情况(1)
感想,体会不假大空(1)
有动手写新代码(1)
错题学习深入(1)
点评认真,能指出博客和代码中的问题(1)
结对学习情况真实可信(1)
点评过的同学博客和代码
- 本周结对学习情况:
- [20182316]
其他(感悟、思考等,可选)
排序学的不太好,需要加大力度。
参考资料
ㅤ | 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | ㅤ |
第一周 | 138/138 | 2/2 | 23/23 | 减少了鼠标的使用次数 |
第二周 | 749/887 | 1/4 | 25/48 | |
第三周 | 765/1652 | 1/4 | 25/48 | |
第四周 | 694/2346 | 1/6 | 20/87 | |
第五周 | 1659/4005 | 1/8 | 21/105 | |
第六周 | 531/4536 | 1/9 | 23/128 | |
第七周 | 1523/6059 | 1/10 | 38/166 | |
第八周 | 1736/7795 | 1/11 | 29/195 |