《程序设计与数据结构》第9周学习总结

教材学习内容总结

  • 堆和优先队列。
  • 向堆中添加一个元素
  • 堆的实现
  • 堆排序

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

  • 问题1:堆和二叉排序树的差别在哪?
  • 问题1解决方案:这是一个课上问题,我当时的答案是:
  • 二叉排序树若左子树不为空则左子树中的元素小于根的元素,反之右子树不为空右子树中的元素大于根。
    而堆的根是元素中的最大值。
    二叉排序树不是完全二叉树,堆是完全二叉树。
  • 但我后来在活动结束后参考了一下张之睿同学(20162311)的答案:
  • 堆是一颗完全二叉树,二叉排序树不一定是;二叉排序树的左孩子<父亲<右孩子或者左孩子>父亲>右孩子,堆是父亲>子结点或者父亲<子结点;添加元素的方法不一样,堆是先将这个元素添加为叶节点,然后向上移动到合适位置,而二叉排序树是通过比较来插入元素
  • 我当初疏忽了一点:堆有最大堆和最小堆的情况,而且我没有说出二叉排序树和堆添加元素有何不同。

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

  • 问题1:如何实现PP18.1
  • 问题1解决方案:首先我们得明白getMax这个方法如何使用,伪代码怎么搞。
  • getMax就是获取堆中最大值的代码

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

结对及互评

20162330刘伟康

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...

本周结对学习情况

- [20162330](http://www.cnblogs.com/super925/)
- 结对照片
- 结对学习内容
    - XXXX
    - XXXX
    - ...

其他(感悟、思考等,可选)

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90
第五周 300/1600 4/13 25/120
第六周 300/1900 1/14 20/140
第七周 300/2200 3/17 20/160
第八周 100/2300 2/19 15/175
第九周 100/2300 1/20 10/185

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:15小时

  • 实际学习时间:10小时

  • 改进情况:图书馆学习Ing

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted on 2017-11-05 10:20  20162319莫礼钟  阅读(134)  评论(0编辑  收藏  举报