• 20162305李昱兴 2017-2018-1 《程序设计与数据结构》第1周学习总结


    20162305 2017-2018-1 《程序设计与数据结构》第1周学习总结

    教材学习内容总结

    • 算法:在有限步骤内求解某一问题所使用的一组定义明确的操作序列,能够在有限时间内,对一定的规范的输入获得所要求的输出。
    • 渐进时间复杂度:如果 O(f(n)) 是某个算法的语句执行次数f(n)的上限,那么我们可以说此算法的渐进时间复杂度(简称时间复杂度) 或是执行时间为 O(f(n))。算法的渐进上限即为时间复杂度。
    • 增长函数:表明问题的大小(n)与希望优化的值之间的关系的表达式。
    • 有关算法的效率:
      同一算法:取决于输入量的大小,多慢少快;
      不同算法:不同的区间,算法的速度不同;规模小时,效率接近;规模大时,效率变化明显。
    • 算法 = 数据结构 + 程序。
    • 数据结构三要素:数据的逻辑结构、数据的存储结构和数据的运算。

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

    • 问题1:教材P294,当处理器速度提高10倍时,算法A的复杂度是n2阶,效率提高只达到10的平方根3.16倍,这是为什么?

    • 问题1解决方案:这个问题是我自己想出来的,用自己的语言来简单的解释一下。首先是时间复杂度的定义,如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数,T(n)称为这一算法的“时间复杂度”。现在时间复杂度为n,解决s1问题时需要用时为n,提速以后解决这个问题就需要1/10n,那么它能解决的问题就从s1变成了10s1。时间复杂度为n2时,提速10倍后解决一个问题的时间就变成了根号下n2/10,解决一个问题的时间为n/3.16,,所以提升后能解决的问题就变成了3.16s1。其他情况以此类推,A4的问题王老师已经指出,采用对数运算即可解决。

    • 问题2:算法的时间复杂度实例理解有问题。

    • 问题2解决办法:我看教材P296的代码讲解,知道了这个循环过程的复杂度确定。

    代码托管

    • 最近更换了新的电脑,相关的东西还没有配置好,配置好后补发截图。

    结对及互评

    点评:

    • 博客中值得学习的或问题:
      • 对教材的梳理很细致,可是对知识点的理解可以再多一些。

    本周结对学习情况

    - [20162306](http://www.cnblogs.com/guominxiaocao/p/7501904.html)
    - 结对学习内容
        - 算法分析
        - 梳理教材内容
    

    其他

    • 第一周的学习主要接触了算法这一部分,刚刚学习算法,就对时间复杂度这个概念不是很了解。算法之于代码也是十分重要的一部分,之后的学习更要努力。本周的学习没有写代码,下周的学习,要配置好电脑,将算法和代码多结合起来,坚持做中学。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 100/100 1/1 20/20

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

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

    • 计划学习时间:XX小时

    • 实际学习时间:XX小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    ByteBuffer使用实例
    Fiddler抓包显示请求时延
    手机wifi连上Fiddler后无网络问题解决
    git
    git
    Autofac使用
    Redis实战
    Redis实战
    Redis实战
    Redis实战
  • 原文地址:https://www.cnblogs.com/lyxwatm/p/7501728.html
Copyright © 2020-2023  润新知