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

    20172316 2018-2019-1《程序设计与数据结构》第一周学习总结

    教材学习内容总结

    第一章 概述

    1.1软件质量

    软件质量:分为多个方面:正确性、可靠性、健壮性、可用性、可维护性、可重用性、可移植性、运行效率

    1.2数据结构

    数据结构:是计算机存储、组织数据的方式。为了适应软件的功能,提高软件质量,要合理地使用不同的数据结构。

    第二章 算法分析

    2.1算法效率分析

    算法分析:是计算机科学的基础。我的理解是:这是把用人脑解决的问题转换为可以让计算机可以“看懂”的算法

    2.2增长函数与大O记法

    • 问题大小:问题的大小根据问题的具体情况以及所涉及的变化量而不同表达为n
    • 增长函数:问题大小与我们希望最优化值之间的关系,表示算法的时(空)间复杂度
    • 渐进复杂度:n增加时增长函数的一般性质。又称为算法的阶次,阶次的表示:阶次为n时,记为“O(n)”

    2.3增长函数的比较

    处理器速度和存储器速度不能弥补算法效率的差异。对于复杂度越低的算法,处理器提速的效果越显著。

    2.4时间复杂度分析

    • 循环运行的复杂度分析
      例如:
    System.out.print("1 ");
    for (int count = 0; count < n; count ++)
    {
        System.out.print("+ 1 ");
    }
    System.out.print("= " + n)
    

    其复杂度为O(n)

    • 嵌套循环的复杂度分析
      将每一层的阶次相乘。两层嵌套都为O(n)时,总体的复杂度为O(n²)
    • 方法调用的复杂度分析
      分析方法与嵌套循环的复杂度分析大体相同,

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

    该图表中各项数值的得出过程。

    算法A为1 : 1,较容易得出。
    算法B为10 : 3.16,数值的关系为:3.16是10的开平方。
    算法C为10 : 2.15,数值的关系为:2.15是10的开立方。
    算法D为10x : x+3.3,3.3就是log₂10(此处忘记对数的计算法则的相关知识,在网络查找时回忆起来)


    练习题

    EX2.1

    下列增长函数的阶次是多少?
    a.10n²+100n+1000

    b.10n³-7

    c.2^n+100n³
    2^n

    d.n² ·log n
    n²·log n

    EX2.4

    for(int count = 0 ; count < n ; count++)
        for(int count2 = 0 ; count2 < n ; count2 = count2 + 2)
            {
                System.out.println(count,count2);
            }
    }
    

    增长函数:t(n) = ½n²(外层循环:n次,内部循环:½n次,相乘)
    阶次:n²

    EX2.5

    for(int count = 0 ; count < n ; count++)
        for(int count2 = 1 ; count2 < n ; count2 = count2 * 2)
            {
                System.out.println(count,count2);
            }
    }
    

    增长函数:n = 1 时,t(n) = 0;
    n > 1 时,t(n) = n·log₂(n - 1)。(外层:n次,内层:log₂(n - 1)次,相乘)
    阶次:n·log₂n


    学习进度条

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

    结对互评

    唐才铭19
    王文彬29

    参考资料

  • 相关阅读:
    Java 之Integer相等比较
    Java 之HashMap.values()方法误用
    Java 异常归纳总结
    MySQL之GROUP BY用法误解
    Java 类的成员初始化顺序
    十三、java_GUI
    十二、java_网络编程
    十一、java线程
    十、java_IO
    九、java容器
  • 原文地址:https://www.cnblogs.com/zhaoqianchen/p/9615568.html
Copyright © 2011-2022 走看看