您的位置:首页 > 理论基础 > 数据结构算法

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

2017-09-10 15:34 239 查看

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/901/112/12
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

计划学习时间:20小时

实际学习时间:12小时

(有空多看看现代软件工程 课件

软件工程师能力自我评价表)

七、 参考资料

《Java程序设计与数据结构教程(第二版)》

《Java程序设计与数据结构教程(第二版)》学习指导

java算法

绪论ppt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐