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

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

    教材学习内容总结

    第一章

    • 正确性:软件遵守其特定要求的程度。
    • 可靠性:软件故障的频率和重要性。
    • 健壮性:很好地处理错误情况的程度。
    • 可用性:用户可以轻松地在软件中学习和执行任务。
    • 可维护性:可以轻松地对软件进行更改。
    • 可重用性:在开发其他软件系统时可以轻松地重用软件组件。
    • 可移植性:软件组件可以轻松地在多个计算机环境中使用。
    • 运行效率:软件在不浪费资源的情况下实现其目的的程度。
    • 数据结构
      程序=数据结构+算法,软件=程序+软件工程
      数据结构:计算机存储、组织数据的方式。

    第二章

    • 算法效率
      算法效率通常用CPU的使用时间表示,算法分析是从效率的角度对算法进行分类
    • 增长函数
      我们希望最优化的值:时间复杂度-CPU的使用时间,空间复杂度-内存空间,
      通常关注的比较多是CPU的使用时间
      增长函数表示问题大小(n)与希望优化的值之间的关系。
    • 大O记法:常用大O表示法表示时间复杂性,注意它是某一个算法的时间复杂性。
    • 时间复杂度的计算规则:加法准则,乘法准则,特例情形

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

    • 问题1:不懂书上P6上的散列表(hash table)是什么意思
    • 问题1解决方案:查询资料得知:哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。资料
    • 问题2:空间复杂度与时间复杂度的区别
    • 问题2解决方案:时间复杂度是同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。参考资料

    课后习题

    • EX2.1 下列增长函数的阶次是多少?
      a.10n^2+100n+1000
      n的平方
      b.10n^3-7
      n的立方
      c.2n+100n3
      2的n次方
      d.n^2 ·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);
            }
    }
    

    该循环外层循环n次,内层循环n/2次,由乘法准测可得增长函数为:F(n)=(n2)/2,即阶次是O(n2)。

    • EX 2.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(2^x = n,x=log2 n),所以增长函数是nlog2n,阶次是O(nlog2n)。

    结对及互评

    点评过的同学博客和代码

    • 本周结对学习情况
      • 20172318
      • 结对学习内容
        • 第一章
        • 第二章

    学习进度条

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

    参考资料

  • 相关阅读:
    正则表达式-元字符
    利用shell脚本实现nginx 的logs日志分割
    Linux下 nfs部署
    Linux下 niginx部署
    linux 硬盘分区与格式化挂载 (二)
    linux 硬盘分区与格式化挂载
    linux 系统监控
    [LeetCode] Best Time to Buy and Sell Stock
    [LeetCode] Convert Sorted Array to Binary Search Tree
    [LeetCode] Binary Tree Inorder Traversal
  • 原文地址:https://www.cnblogs.com/huzhitao/p/9614974.html
Copyright © 2011-2022 走看看