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

参考:构建之法 第一章 概论

posted on 2017-09-10 22:51  GiggleKV  阅读(148)  评论(1编辑  收藏  举报

导航