20172311《程序设计与数据结构》第一周学习总结
教材学习内容总结
第一章 概述 (基于软件质量问题引导出数据结构)
-
高质量软件的几个特征:
-
质量问题:
必须优先考虑质量特征,并尽最大努力实现 -
数据结构:计算机存储、组织数据的方式
-
程序=数据结构+算法
-
事实证明没有一种方案可以解决所有的问题!
第二章 算法分析(高效利用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
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小时
-
改进情况:继续加油吧!