《数据结构与面向对象程序设计》第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)

  • 参考示例

    点评过的同学博客和代码

  • 本周结对学习情况
    • 学号20182324
    • 结对照片
    • 结对学习内容
      • 用链表实现队列,以及队列的出入、删除、交换等等操作。
      • 用数组实现队列,同样实现上述操作。
      • 学习查找的ASL算法,对比出更加高效的算法,同时学会鉴别算法的稳定性。
      • 学会最简单的线性查找,以及二分法查找。
      • 学会在查找的基础上进行简单排排序,学会并实现选择排序。
      • 插入排序是将元素插入已有列表。
      • 学习冒泡排序,但是冒泡是一种算法非常复杂的。
      • 学习快速排序和归并排序。
    • 学号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 ,所以代码量不够多,在周六周天假期少一点玩,多打几行代码。

参考资料

猜你喜欢

转载自www.cnblogs.com/lyz182329/p/11794076.html