• 20172332 2017-2018-2 《程序设计与数据结构》第一周学习总结


    20172332 2017-2018-2 《程序设计与数据结构》第一周学习总结

    教材学习内容总结

    第一章

    • 1.高质量软件的特征:①正确性——满足特定需求。 ②可靠性——故障发生的频率和危险程度。 ③健壮性——出错后,可以得到恰当处理的程度。 ④可用性——使用的难易程度。 ⑤可维护性——对软件修改的难易程度。 ⑥可重用性——软件组件能用于其他软件的难易程度。 ⑦可移植性——软件在不同的计算环境中使用的难易程度。 ⑧运行效率
    • 2.数据结构:队列、栈、树等与数据存放顺序有关。

    第二章

    • 1.算法分析:计算机科学的基础,决定一个程序运行速度的主要因素。
    • 2.增长函数:表示问题(n)大小与我们希望最优化的值之间的关系,该函数表示了该算法的时间复杂度或空间复杂度。我们不需要知道某一算法确切的增长函数,主要关注的是渐进复杂度(n、n^2等一系列)
    • 3.渐进复杂度:算法的阶次。
    • 4.大O记法:具有相同阶次的算法,从运行效率的角度来说都认为是等价的。
    • 5.时间复杂度分析:通常需要分析循环的运行,比如:循环n次就是O(n)。
    • 6.嵌套循环的复杂度分析:外层循环运行的次数与内层循环的次数相乘。

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

    • 问题1:时间复杂度的计算规则。
    • 问题1解决方案:
      -

    课后题解答

    EX2.1:下列增长函数的阶次是多少?

    • a.10n^2+100n+1000
    • a.O(n^2)
    • b.10·n^3-7
    • b.O(n^3)
    • c.2^n+100· n^3
    • c.O(2^n)因为增长速率快
    • d.n^2 ·log(n)
    • d.O(n^2logn)

    EX2.4:请确定下面代码段的增长函数和阶次:

    for(int count = 0 ; count < n ; count++)
        for(int count2 = 0 ; count2 < n ; count2 = count2 + 2)
        {
            System.out.println(count,count2);
        }
    }
    
    • 外层循环n次,内层循环n/2次,根据乘法准则可以发现是增长函数是t(n)=(n2)/2,阶次是O(n2)

    EX2.5:请确定下面代码段的增长函数和阶次:

    for(int count = 0 ; count < n ; count++)
        for(int count2 = 1 ; count2 < n ; count2 = count2 * 2)
        {
            System.out.println(count,count2);
        }
    }
    
    • 外层循环n次,内层循环log2(n)次,根据乘法准则可以发现,增长函数是t(n)=nlog2(n),阶次是O(nlog2n)

    其他(感悟、思考等,可选)

    • 新的学期新的开始,继续努力吧。

    学习进度条

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

    参考资料

  • 相关阅读:
    洛谷—— P2234 [HNOI2002]营业额统计
    BZOJ——3555: [Ctsc2014]企鹅QQ
    CodeVs——T 4919 线段树练习4
    python(35)- 异常处理
    August 29th 2016 Week 36th Monday
    August 28th 2016 Week 36th Sunday
    August 27th 2016 Week 35th Saturday
    August 26th 2016 Week 35th Friday
    August 25th 2016 Week 35th Thursday
    August 24th 2016 Week 35th Wednesday
  • 原文地址:https://www.cnblogs.com/yu757503836/p/9614784.html
Copyright © 2020-2023  润新知