zoukankan      html  css  js  c++  java
  • 20162307 2017-2018-1 《程序设计与数据结构》第1周学习总结

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

    一、 教材学习内容总结(第十二章 算法分析)

    算法效率

    • 算法分析的两个主要的任务 = 正确性(不变性✖️单调性)+ 复杂度
    • 计算=信息处理 计算模型=计算机=信息处理工具
    • 算法就是在特定的计算模型下,只在解决特定问题的指令序列。
    • 我认为算法效率就是在尽可能的条件下减少工作时间,提高效率。这样我们可以加快机器的运行时间,所以,在编写程序时,如何运用合适的算法成为了我们共同面临的课题。算法分析是计算机科学的基础课题。

    增长函数和大o符号

    • 增长函数表明问题大小(n)与希望优化值之间的关系。增长函数显示了与问题大小相关的时间或空间利用率。
    • 渐进复杂度称为算法的阶。那么,以书上洗盘子为例,第二种的时间复杂度为n的平方。表示阶的这个记号为O()或big-Oh
    • 例如 t(n)=10n+8的复杂度为O(n)。以此类推。

    比较增长函数

    • 现在,许多时候,处理器速度和内存无法弥补算法效率的差异了。
    • 将增长函数进行比较:分析最优解的结构、建立递归关系、计算最优值、用动态规划法求最优解

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

    (一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。 )

    • 问题1:上课的时候,在娄老师讲解ppt时,对其中的程序段、频度、时间复杂度,不是很明白

    • 问题1解决方案:编了一小段程序进行理解分析,并在网上查找资料,通过运行结果将问题解决

        for(d = 0; d < 10; ++d) {
                    for(c = 0; c < 10; ++c) {
                        for(b = 0; b < 10; ++b) {
                            System.out.print("" + b);
                        }
      
                        System.out.println("" + c);
                    }
      
                    System.out.println("" + d);
                }
      

    三、 上周考试错题总结

    • Determine the order of the following pseudocode fragment. (确定下面的伪代码片段的阶)
      print i + n
      A .O(1)
      B .O(log n)
      C .O(n)
      D .O(n2)
      E .O(2n)
      F .None of the above)

    这是一个只执行两个操作的语句(添加和打印)。

    • An algorithm of order O(n) is considered faster than an algorithm of order O(n3).(一个为O(n)的算法被认为是比为O(n3)算法快)
      A .true
      B .false
      较小的函数表示更短的时间,这意味着算法更快。值得注意的是,在实践中,一个算法的O(N3)可能更快的一组特定的输入,根据大小的输入和恒定的因素是算法比较。参见图12.2所示的几种重要的引用函数列表,用以表示算法在大符号表示中的顺序。

    四、 结对及互评

    1、点评模板:

    • 博客中值得学习的或问题:结对伙伴错题解释不够详细

    2、本周结对学习情况

    • 20162303
    • 结对学习内容
      1.第十二章算法分析
      2.研究学习老师上课所讲的ppt

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

    觉得算法对于计算机科学骑着十分重要的作用,它可以加快运行速度,觉得这章有根数学联系
    这是新学期的第一周,加油,希望这学期的我可以再接再厉

    六、 学习进度条

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

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

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

    • 计划学习时间:20小时

    • 实际学习时间:12小时

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

    七、 参考资料

  • 相关阅读:
    批量插入测试脚本
    Show Profile分析sql语句的资源消耗
    慢查询日志
    ORDER BY优化
    Join查询
    Explain(执行计划)分析
    索引
    MySQL中的DML(数据操作语言)和DQL(数据查询语言)
    MySQL中的DDL(数据定义语言)和DCL(数据控制语言)
    MySQL架构体系介绍
  • 原文地址:https://www.cnblogs.com/Tiffany23/p/7500360.html
Copyright © 2011-2022 走看看