《数据结构与面向对象程序设计》第8周学习总结
学号20182329 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结
教材学习内容总结
- 用链表实现队列,以及队列的出入、删除、交换等等操作。
- 用数组实现队列,同样实现上述操作。
- 学习查找的ASL算法,对比出更加高效的算法,同时学会鉴别算法的稳定性。
- 学会最简单的线性查找,以及二分法查找。
- 学会在查找的基础上进行简单排排序,学会并实现选择排序。
- 插入排序是将元素插入已有列表。
- 学习冒泡排序,但是冒泡是一种算法非常复杂的。
- 学习快速排序和归并排序。
教材学习中的问题和解决过程啊
- 问题1:在学习归并查找的过程中,发现在分解和归并的每一步中度需要进行一轮比较,也就是说,在一个循环中套两个循环,但是这样的运算算法就会非常复杂,而且只是设置分解在循环中可以,但是很难把合成也放在其中。
- 问题1解决方法:算法本身复杂是没有解决的方法,两个循环无法并行时,可以将归并部分的代码重新设置一个方法,需要的时候调用就可以了。
- 问题2:在学习Android 的课程时,不是很理解和使用监听器,自己编写的监听器总是无法连接。
- 问题2解决方案:在实验2的学习编写中,监听器与按钮相结合的方式,连接两个活动,这当然含有点击、长按等,关键在一个监听器等待一个活动开始后,相应另一个活动,接口是必要且关键的。
- 问题3:我在编写书上SortPlayerList代码时,发现我设置一个inset(void)方法时,最后执行时结果并没有改变,date值并没有改变。
- 问题3解决方法:缺少一个方法。如图:
代码调试中的问题和解决过程
-
问题1:在Android 上实现实验2时,发现自己不能再layout中编写的布局中调用方法Chain6_4
-
问题1解决方法:我在编写Second的时候缺少与之对应的布局。
-
问题2:在编写查找的sort方法时,我已经编写好了Searching的主要类,但是在sort的返回值上一直是报错状态。
-
问题2解决方法:在编写时sort方法中,result的值一开始是String类,后来使用循环应为int类
错题
代码托管
https://gitee.com/besti1823/20182329lyz.git
(statistics.sh脚本的运行结果截图)
上周考试错题总结
结对及互评
-
博客中值得学习的或问题:
- 本博客体现许多java连接的问题,发现了一些排序和查找的优点。
- 但是博客在课本自学方面存在一点问题,并没有将所有知识点列出,只是课本编程实列的学习问题的解决。
- 这篇博客的代码问题并没有将各种排序的方法事列出来,也没有将查找的算法列出来。
-
代码中值得学习的或问题:
- 本博客在提出代码编写错吴时,虽然解析比较完整,没有展示出比较全面的图片。
- 本博客存在设置类(抽象类)时的错误,希望改正。
-
基于评分标准,我给本博客打分:10分。得分情况如下:
-
正确排版要素齐全(+1)
-
使用makedown格式(+1)
-
教材问题(+3)
-
代码调试问题(+3)
-
错题深入(+1)
-
点评认真(+1)
点评过的同学博客和代码
- 本周结对学习情况
其他(感悟、思考等,可选)
在学习链的排序时,发现有很多方法可以用,不是非要冒泡法或选择排序发,哈希法取模循环排序也可以为数字排序,不过排序首先得查找,再决定用交换还是插入排序,当然最简单的线性排序交换也可以,快速排序的交换方法是最快的算法。同时在学习查找与排序时,排序应该说是一种有后续进程的查找,更高级更快速而且最稳定的算法是必不可少的是计算其ASL。在队列中的插入、查找、更替等等也非常重要。
参考资料
Java程序设计
Android程序设计
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 6000行 | 30篇 | 400小时 | |
第一周 | 107/107 | 2/2 | 15/15 | |
第二周 | 454/526 | 2/4 | 32/47 | |
第三周 | 988/1514 | 2/6 | 31/78 | |
第五周 | 757/2271 | 2/8 | 31/109 | |
第六周 | 875/3146 | 1/9 | 31/140 | |
第七周 | 1282/4428 | 2/11 | 58/198 | |
第八周 | 1972/6400 | 2/13 | 36/234 | |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:60小时
-
实际学习时间:58小时
-
改进情况:这周主要是学习Android ,所以代码量不够多,在周六周天假期少一点玩,多打几行代码。