20182305 2019-2020-1 《数据结构与面向对象程序设计》第八周学习总结
20182305 2019-2020-1 《数据结构与面向对象程序设计》第八周学习总结
教材学习内容总结
这一周的学习内容为教材第十三章,包括查找和排序两部分。
-
查找:包括线性查找,折半查找等。
- 线性查找即按顺序从前向后一个一个进行查找,但是为了提高代码运行效率,可以在第一个位置设置哨兵,从后向前查找。如果查找到的位置是在哨兵位置,则说明未找到这一目标。
- 折半查找需要先将查找序列进行顺序排列(一般是从小到大),然后将中间位置的元素与目标比较大小,如果中间元素小于目标元素则说明可能在中间元素的左边,反之在右边。折半查找充分来利用查找序列有序这一特性来提高效率。
-
排序:包括选择排序、冒泡排序、插入排序、快速排序。
- 排序是按照某种标准将一串数据按要求重新排列。
- 选择排序是反复将具体的值放到它最终应该去的有序位置。
- 插入排序是将具体的值按要求插入到已有顺序的列表的具体位置。
- 冒泡排序是反复比较相邻元素,判断是否满足要求,如果有需要就将他们交换位置。
- 快速排序利用了递归算法,第一遍将整个序列分为两个部分,以中间轴为分界线,左边小于中枢,右边大于中枢。再分别进行排序。
教材学习中的问题和解决过程
-
问题一:线性查找时设置哨兵在数组第一位有什么意义。
通过设置哨兵,可以使查找过程获得一个一定可以找到的结果,此时只需要判断找到元素的位置是不是在哨兵位置,就可以判断原来序列中究竟是否含有这个元素。而这一过程可以使循环减少一个判断语句,循环次数多了以后就可以显著提高效率
-
问题二:排序算法的稳定性究竟有什么意义。
其实有很多算法现在看着没什么不同,但是当放在大数据云计算的条件下它的稳定性非常重要。举个例子来说,对淘宝网的商品进行排序,按照销量,价格等条件进行排序,它的数据服务器中的数据非常多,因此,当时用一个稳定性效果不好的排序算法,如堆排序、shell排序,当遇到最坏情形,会使得排序的效果非常差,严重影响服务器的性能,影响到用户的体验。
-
问题三:对于常用的排序方法,究竟哪种方法效率更高?
1.冒泡算法效率最低。 2.插入算法效率最高。 3.选择算法是冒泡算法的3.3倍。 4.插入算法是冒泡算法的4.7倍。 5.插入算法是选择算法的1.4陪。
代码调试中的问题和解决过程
-
问题一:==,equals和compareTo的区别?
==:一般比较两个变量的值,返回true和false,比较对象的地址,不比较对象的内容, equals:比较两个对象的内容,一般用于比较字符串。 compareTo:在API中,java.lang包下面的基本数据类型(Integer,Float,Byte,Short,Character 等)的封装类都实现了对应的compareTo方法。例如对应Interger实现了数值大小判断;对应String按照字典排序实现字符串的判断,返回的是字符串长度差或者是字符间在码表上的差距。compareTo返回int值,大于返回大于0的整数,等于返回0,小于返回小于0的整数。
代码托管
结对学习同学博客(20182327)
-
博客中值得学习的或问题:
- 分点分章节总结学习内容,全面、真实的写出了自己这周的学习情况。
- 添加了图片和代码片段,很好的记录了学习过程中出现的问题,记录了学习中的点子和想法。有助于记录自己的学习过程、代码出错的情况,便于后续学习纠错总结。也可以更好的总结这一周的学习情况。
-
代码中值得学习的或问题:
- 善于利用Java语言代码复用性高的特点,不需要重复敲代码,善于使用继承,使用以前瞧过的代码。
-
基于评分标准,我给本博客打分:11分。得分情况如下:正确使用Markdown语法+1.教材学习中的问题和解决过程+2.代码调试中的问题和解决过程+3.感想,体会不假大空+1.点评认真,能指出博客和代码中的问题+1.结对学习情况真实可信+1.课后题有验证+1,进度条有记录+1.
点评过的同学博客和代码
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 6000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 17/17 | |
第二、三周 | 556/756 | 3/5 | 31/48 | 明白了类与方法的关系,对Java编程的思想的了解有了一些进步 |
第四周 | 673/1429 | 2/7 | 12/60 | 对两段代码之间的关系了解了一些 |
第五周 | 1308/2737 | 2/9 | 25/85 | |
第六周 | 800/3537 | 2/11 | 18/103 | |
第七周 | 4195/7732 | 2/13 | 27/130 | |
第八周 | 489/8221 | 1/14 | 6/136 |