20172311《程序设计与数据结构》第一周学习总结

20172311《程序设计与数据结构》第一周学习总结

教材学习内容总结

第一章 概述 (基于软件质量问题引导出数据结构)

  • 高质量软件的几个特征:
    php

  • 质量问题:
    必须优先考虑质量特征,并尽最大努力实现html

  • 数据结构:计算机存储、组织数据的方式web

  • 程序=数据结构+算法
  • 事实证实没有一种方案能够解决全部的问题!算法

    第二章 算法分析(高效利用CPU和内存)

  • 增加函数:表示问题大小(n)与咱们但愿最优化的值之间的关系,该函数表示了该算法的时间复杂度或空间复杂度
  • 大O记法:
    数组

  • 全部具备相同阶次的算法,从运行效率的角度来讲都认为是等价的
  • 增加函数的比较
    数据结构

  • 若是算法的运行效率低,那么从长远来讲,使用更快的处理器也无济于事
  • 时间复杂度分析:肯定某个算法的阶次函数

教材部分习题解答过程

EX 2.1 下列增加函数的阶次是多少?

a.10n^2+100n+1000
解答:n^2学习

b.10·n^3-7
解答:n^3优化

c.2^n+100· n^3
解答:2^n.net

d.n^2 ·log(n)
解答:n^2 ·log(n)

EX 2.4 请肯定下面代码段的增加函数和阶次

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

解答:
增加函数为:F(n)=(n^2)/2

阶次为:n^2

EX 2.5 请肯定下面代码段的增加函数和阶次

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

解答:
增加函数:F(n)=n·log2(n)

阶次为:n·log2(n)

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

  • 问题1:堆和散列表(用于给数据集排序的经常使用的数据结构)是什么?
  • 问题1解决方案:(经过查询相关资料进行了解)

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它经过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫作散列函数,存放记录的数组叫作散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能获得包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。

堆(heap)是计算机科学中一类特殊的数据结构的统称。堆一般是一个能够被看作一棵树的数组对象。

代码托管 (正在建设中)

结对及互评

  • 本周结对学习状况
    课后习题交流讨论良好!

感想

新的学期开始了,但愿本身能在新的学期里多多提升!

学习进度条

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

  • 实际学习时间:4小时

  • 改进状况:继续加油吧!

参考资料

相关文章
相关标签/搜索