20172322 《程序设计与数据结构》第一周学习总结
教材学习内容总结
- 本周是新学期的第一周,也只有一节课,课上老师结合教材给我们讲了一堂课,主要内容如下:
-
高质量软件的主要特征:正确性、可靠性、健壮性、可用性、可维护性、可重用性、可移植性、运行效率、质量问题。
-
阶次O的计算法:忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出的。
-
处理器运算速度的大幅度提升和大量廉价储存器的涌现也不代表我们能忽略算法分析,而恰恰相反,处理器速度和存储器并不能弥补算法效率的差异。
-
在嵌套循环中的复杂度分析:需用内层循环的复杂度乘以外层循环的复杂度。
-
只有可运行得语句才会增加时间复杂度
-
教材学习中的问题和解决过程
- 问题1:最初对EX2.4中内层循环的
for(count2 = 0; count2 < n; count2 = count2 * 2)
表示有疑问,这是一个无限循环,无限循环的阶次计算应该没有那么简单。在网上也没有相关的解答。 - 问题1解决方案:随后助教改成了
count2 = 1
。
代码调试中的问题和解决过程
本周暂时没有代码调试。
代码托管
暑期app码云链接:点击这里
本周作业
-
EX2.1、EX2.4、EX2.5答案如下图
-
过程:
- EX2.1:通过观察易得答案
- EX2.4:外层for循环的阶次是O(n)内层for循环阶次也是O(n),故阶次为0(n2),增长函数t(n)=n✖n/2✖1=n2/2
- EX2.5:外层for循环的阶次是O(n)内层为O(logn)故阶次为O(nlogn),增长函数t(n)=nlogn
结对与互评
点评过的同学博客和代码
- 本周结对学习情况
-
结对学习内容
- 在上课时想她询问了一些关于阶次的计算方法,她为我做了初步的解释,为我之后的学习作出了比较大的帮助。
- 在空闲时间进一步共同修正APP,现在已经加上了计时功能,并且对界面做了相应的优化。
-
博客中值得学习的或问题:
- 博客内容十分详细,对比我的博客而言显得十分优秀。
- 没有问题。
其他
- 感悟:做出一个好的软件绝不是一件容易的事,与之对应的软件工程的目标很大程度上与其他工程学科是一样的。
- 思考:这学期一定要好好学习!争取保持与上学期的成绩相同!
- 暑期app博客地址(持续更新):
- 基础实现:点击这里
- 增补:计时器的加入:点击这里
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/5000 | 2/30 | 8/400 | 认真学习!积极向上 |
-
计划学习时间:5小时
-
实际学习时间:8小时