20182334 2019-2020-1 《数据结构与面向对象程序设计》第八周学习总结

20182334 2019-2020-1 《数据结构与面向对象程序设计》第八周学习总结

教材学习内容总结

第八周学习了各种查找的方法和排序的方法。

查找:顺序查找、折半查找、二叉排序树查找、散列查找。

排序:选择排序、插入排序、快速排序、冒泡排序、归并排序等。

知识点很多,也比较繁琐,目前来说,我还没有完全学懂,虽然理论知识都知道,都清楚,但具体用代码实现感觉还是有点困难和无力的。

还学习了ASL计算平均查找长度,关于ASL(平均查找长度)的简单总结这篇博客主要讲了哈希查找的ASL计算过程和方法,我看了后感到收获颇多,故分享在这里。

还学习了用理论知识写出用快速排序排出后的结果,也就是用计算机的思维做排序,更充分的了解了快速排序。

各种排序或查找的时间复杂度。

教材学习中的问题和解决过程

  • 问题1:在课本中有用到comparable定义数据的类型,我感到很不解,comparable是一个接口,为什么会用来定义一个类型呢?

  • 问题1解决方案:又用jdk api查找了一遍comparable:

之后我发现其实他用comparable定义类型其实和之前学的泛型
差不多,当传参传进去为int型的时候,没有报错,运行出来的结果也是int型,当传参传进去为String型的时候,运行出来的结果是String型。

所以我感觉基本和泛型类似,作为一个可以后面改变、灵活的类型定义。

  • 问题2:没有学明白快速排序的原理,快排过程中的基点怎么找,或者说之后怎么换,还是比较模糊。

  • 问题2解决方案:为了解决我的这个问题,我再次进行自学,上完找相关资料,发现了一篇博客写的很好:快速排序(java实现)

上面这张图解释了基准点的问题,一般为了方便,都定义第一位数为基准点,后面的变化都是依靠这个基准点来变化的。

上面这张图显示了怎么换,从基准点之后的一位数开始,先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们,交换很多遍之后,就完成了排序,这种排序方法效率很高,提高计算机的效率。

  • 问题3:老师教归并排序的时候自己跑神了,所以不知道如何做归并排序。

  • 问题3解决方案:还是自学,上网找博客:Java实现归并排序-有图有真相这篇博客同样讲的很仔细。一张图基本就解决了我的问题:

这张动图讲的是将无序的一串数分离开变成多段数组,之后在各自数组里排序,之后两两合并,再重新排序,如此往复,最后成为一整个数组,那么输出出来的时候就是有序的了。

代码调试中的问题和解决过程

  • 问题1:在用递归的时候出现问题,想要查找的位置总是少一位。

  • 问题1解决方案:经过结对伙伴的纠正才发现原来我传回来的是数组下标,所以总是减一。之后我把返回值加一,这样就能准确的返回对应位置的值。

  • 问题2:折半查找为什么必须要有序?
  • 问题2解决方案:

上面这一些列图可以看到,所谓折半就要找中间的位置,然后与所要找的值比大小,之后再确定折半后的第一个值和最后一个值,所以想要确定,就必须要有序,有序之后才能比较。

代码托管

上周考试错题总结

上周无考试

点评过的同学博客和代码

  • 本周结对学习情况
    • 20182321

    • 结对照片

    • 结对学习内容

      • 共同完成查找与排序的学习。
      • 共同解决书上出现的问题。
  • 上周博客互评情况

其他(感悟、思考等)

通过学习数据结构,我发现自己java还有很多问题,比如各种定义或者类型的调用,再或者是用接口来做实验。在学习节点的时候,Node方法还是不熟练,只是会用,但里面的内容还是不是很清楚,所以还得加强练习。至于数据结构方面,我能理解里面的内容,但不知道如何用代码实现,这就让身为程序员的我,很难。可能是学习java和数据结构的时间太紧凑,所以很多内容老师讲完我还没消化就讲新的内容了,或者老师有些东西就不讲,全靠自学,自学也还行,但是真的没时间!!只有假期里看能不能再巩固的学一次,目前尽力跟上老师的脚步。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 212/212 2/2 17/17
第二周 132/344 2/4 17/34
第三周 689/1033 1/5 23/67
第四周 664/1697 2/7 20/87
第五周 586/2283 2/9 20/107
第六周 500/2783 1/10 26/133
第七周 2143 /4928 2/12 40/173
第八周 3272 /8200 1/13 40/213
  • 计划学习时间:29小时

  • 实际学习时间:40小时

  • 改进情况:不妥协,死磕到底!

参考资料

posted on 2019-11-04 17:42  cistineup  阅读(155)  评论(1编辑  收藏  举报