20162323周楠 2017-2018-1 《程序设计与数据结构》第1周学习总结
20162323周楠 2017-2018-1 《程序设计与数据结构》第1周学习总结
教材学习内容总结
12.1 算法效率
算法
- 计算机的计算就是对信息进行处理,所谓算法,即在特定计算机模型下,旨在解决特定问题的指令。
- 从效率角度来看,软件开发的目标是速度尽可能快,存储空间尽可能少,但我们一般都以速度尽可能快作为目标来实现。好的算法要求正确(符合语法,能够编译、链接)、健壮(能辨别不合法的输入并做适当处理,而不致非正常退出)、可读(结构化+准确命名+注释+...)
图灵机和RAM算法
TM模型和RAM模型都是对一般计算工具的简化和抽象
TM模型
- 功能:将二进位制非负整数加一
- 算法:全“1”的后缀翻转为全“0”,原来最低位的“0”或“#”翻转为“1”
RAM模型
- 功能:向下取整的除法
- 算法:反复地从R[0]=d统计在下溢之前,所做减法的次数x
12.2增长函数和大O符号
增长函数
- 增长函数表明问题大小(n)与希望优化的值之间的关系,该函数表示算法的时间复杂度和空间复杂度,显示了与问题大小相关的空间或时间利用率
大O符号
大o符号对复杂度分析而言,非常重要,其常系数可忽略,低次项可忽略。非主流信息可以忽略,使主流信息凸显出来。
- 大O函数是一个渐进函数,分为常数、渐进、线性、nlogn、平方、立方、指数。
- 渐近复杂度称为算法的阶,由算法增长函数的主项决定,给出了算法增长函数的上界
12.3比较增长函数
处理器速度和内存不能弥补算法效率的差异,更快的处理器不能弥补当问题的大小增大时算法的低效率
教材学习中的问题和解决过程
- 问题1:大O符号是什么
- 问题1解决方案:看了书上的定义,只提到了渐进函数,并没有说大O符号,从老师给的视频中详细的写的函数表示的符号知道了大o记号具体是什么。
代码托管
结对及互评
点评模板:
- 博客中值得学习的或问题:
- 写的很详细,值得学习
本周结对学习情况
- [20162322朱娅霖](http://www.cnblogs.com/zyl905487045/)
- 结对学习内容
- 一起看了部分视频
其他
新的学期开始了,这个学期老师的教学方法改变了很多,也采纳了学生的意见,为老师点赞,经过一个假期,对上个学期学习的内容变得有点生疏,在刚开始两三周我打算先复习一下之前的内容,看自己和同学们之前的博客,再学习一下博客写的好的同学,把自己的博客写的更好,积极利用网络上各种学习资源,吸纳别人的优点。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 6/2 | 20/20 | |
第二周 | 0/0 | 0/0 | 0/0 | |
第三周 | 0/0 | 0/0 | 0/0 | |
第四周 | 0/0 | 0/0 | 0/0 |
参考:构建之法 第一章 概论,