【[第1集] 课程简介及算法分析 】
来源:互联网 发布:女生说话软件 编辑:程序博客网 时间:2024/05/22 10:33
[第1集] 课程简介及算法分析 (Notes)
在刚刚开始的时候,老师曾经说到一句话:学习在解决问题的时候可以与别人讨论,不过自己要有所思考,才能更快的提高! 这句话说得太好,学习任何一门知识自己不加思考永远不是自己的,就像自己看一道数学题一眼扫过去没有思路,直接翻参考答案,这样你永远不能得到提高。(现在我已经自己着手去做每一道题目(避免眼高手低),思考,理解,领悟,请教学霸。)
一、算法分析:算法分析是理论研究,是关于计算机程序性能很资源利用的研究,特别关注其性能
二、程序设计中,什么比性能更重要?
正确性、简洁性、稳定性、成本、模块化(修改只影响特定代码)、功能性、用户友好。
三、为什么要关注性能?
性能好坏决定着程序是否可行;性能是其他元素的保障;
四、T(n)定义为输入数据个数为n时的最长时间长度。
有时候考虑平均时间,这个时候T(n)代表着期望的时间。期望时间(expected time):每种情况出现的概率乘以运行时间
渐进分析:忽略掉依赖于机器的常量,以及,不是去检查实际的运行时间,而是关注运行时间的增长
对最好的情况分析是假象。
θ渐近符:弃去低阶项,并忽略前面的常熟因子
渐进符号的伟大之处在于它能一举满足我们对相对和绝对速度的双重比较要求,无论在什么计算平台上都能实现这一点。
在合理的规模下使用合理的算法,不一定是渐进后的最优算法,因为渐进后实现的最优算法可能无法达到。成了空想 (n*n, n*n*n 这两个函数的交点表示的数如果非常大超出了计算机达到的范围,那么这种情况下n*n*n 的算法就是最优的了)
五、插入排序 insertron sort
θ渐近符:弃去低阶项,并忽略前面的常熟因子
渐进符号的伟大之处在于它能一举满足我们对相对和绝对速度的双重比较要求,无论在什么计算平台上都能实现这一点。
在合理的规模下使用合理的算法,不一定是渐进后的最优算法,因为渐进后实现的最优算法可能无法达到。成了空想 (n*n, n*n*n 这两个函数的交点表示的数如果非常大超出了计算机达到的范围,那么这种情况下n*n*n 的算法就是最优的了)
五、插入排序 insertron sort
运行时间 影响因素:取决于计算机运行能力(我们比较算法的时候比较的是相对速度;)初始数据的混乱程度、输入数据的规模;
时间复杂度(n*n)
六、 归并排序:
if n=1 , done else 1、对1..(n div 2)递归地排序; 2、对(n div 2)..n 这部分递归地排序; 3、把排好序的两部分归并。 每步只看两个,每组中最小的,选更小的,插入新数列,移动指针。
对归并排序最后比较有了新的认识,关于计算时间复杂度没有怎么听懂(特别是递归树),为了考试还是先记住吧。(nlgn)
通过视频相信自己对于数据结构第一张每年必考的时间复杂度和空间复杂度有了信心,相信自己,你是最好的。
六、 归并排序:
if n=1 , done else 1、对1..(n div 2)递归地排序; 2、对(n div 2)..n 这部分递归地排序; 3、把排好序的两部分归并。 每步只看两个,每组中最小的,选更小的,插入新数列,移动指针。
对归并排序最后比较有了新的认识,关于计算时间复杂度没有怎么听懂(特别是递归树),为了考试还是先记住吧。(nlgn)
通过视频相信自己对于数据结构第一张每年必考的时间复杂度和空间复杂度有了信心,相信自己,你是最好的。
written_by Maple 7.12
0 0
- 【[第1集] 课程简介及算法分析 】
- 课程简介及算法分析
- 算法导论<1、课程简介与算法分析>
- 麻省理工大学公开课笔记:算法导论(二)——课程简介及算法分析
- 算法分析与设计课程作业第一周#1
- 算法分析与设计课程作业第四周#1
- 课程主要算法简介
- 完美数简介及算法分析
- Python初级课程——1_Python简介及特色
- 【python数据挖掘课程】二十.KNN最近邻分类算法分析详解及平衡秤TXT数据集读取
- 1-1课程 简介
- 算法设计与分析课程Part1笔记(1)
- 算法分析与设计课程(1):Add Two Numbers
- 算法分析与设计课程作业第二周#1
- 算法分析与设计课程作业第三周#1
- 算法分析与设计课程作业第五周#1
- 算法分析与设计课程作业第六周#1
- 算法分析与设计课程作业第七周#1#2
- SJTU 1123 折线统计 (动态规划&&树状数组)
- hdu 1017 A Mathematical Curiosity(数学:水题)
- 拨打电话的简单实现
- c语言练习 7-3. 数素数
- 学习心得
- 【[第1集] 课程简介及算法分析 】
- mini2440 按键驱动添加定时器消抖动
- 指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为参数,泛型函数
- List
- 堆栈程序
- 新手!不知道什么错了,要求 1489 各个位数的数字输出
- 写给在迷茫期的程序员(尤其是Java程序员)入行了一年,感觉不知道接下来该怎么做才能继续进步了,求指教
- 链表
- Android(二)一个新程序