目录
20182306 2019-2020-1 《数据结构与面向对象程序设计》第七周学习总结
教材学习内容总结
· 时间复杂度:增长函数与大O符号。增长函数表明问题大小(n)与希望优化的值之间的关系。该函数表示时间复杂度或空间复杂度。渐进复杂度称为算法的阶。记为O(n)
· 时间复杂度越低,程序运行效率越高。时间复杂度的计算可通过寻找运行次数最多的程序,计算他的运行次数,取n的最高次方的极数,即为程序的时间复杂度
· 栈可以理解为一类数据的集合,栈中的元素可以写入,也可以读出。元素存在先后次序。先入栈的先被读出。栈可用数组,链表两种形式实现。
· 有push,pop,peek,isempty,size等常用操作
· 链式结构是基于数组的集合实现的主要代替方案,链表是一种链式结构,自引用式构成了链表的基础,在链表中存储的对象通常泛称为结点node
· 队列是一种线性集合,元素从一段加入从另一端删除(先进先出)。
· 队尾(tail),队首(head),队列前端(front),队列末端(rear)。
教材学习中的问题和解决过程
- 问题1:Queue接口两种方法add和offer在异常类处理上有何不同。
- 问题1解决方案:两者都是往队列尾部插入元素,不同的时候,当超出队列界限的时候,add()方法是抛出异常让你处理,而offer()方法是直接返回false
- 问题2:链表和数组的优缺点?
- 问题2解决方案:数组比链表好在:能根据下标随机读取,链表要访问一个结点需要一个个摸过去;
链表比数组好在:链表比数组节省空间,而且在面对多次循环,元素数量不确定时,链表能比数组更方便地开空间。
代码调试中的问题和解决过程
- 问题1:在用数组实现栈时,但数组下标会随着插入,删除,排序而改变
- 问题1解决方案:固定节点将数值放到每个节点盒子里,所以这样数组下标可以保持不变
- 问题2:用泛型定义的数组在实例化时出现问题。
- 问题2解决方案:泛型定义实例化的时候在T后加上[]
代码托管
上周考试错题总结
无考试
结对及互评
评分标准
- 正确使用Markdown语法(加1分)
- 模板中的要素齐全(加1分)
教材学习中的问题和解决过程, 3个问题加3分
- 代码调试中的问题和解决过程, 2个问题加2分
- 本周有效代码超过300分行的(加2分)
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
结对学习情况真实可信的加1分
点评模板:
- 博客中值得学习的或问题:
- 排版很好
- 代码中值得学习的或问题:
- 代码增长量多,说明结对的同学这周很努力的在学习Java,我也要努力学习Java了
- 仓库有点混乱
- 代码增长量多,说明结对的同学这周很努力的在学习Java,我也要努力学习Java了
- 参考示例
点评过的同学博客和代码
其他(感悟、思考等,可选)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | ||
---|---|---|---|---|
目标 | 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 | |
第五周 | 1526/2986 | 2/9 | 20/115 | |
第六周 | 837/3823 | 2/11 | 20/135 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:20小时
实际学习时间:20小时