【[第1集] 课程简介及算法分析 】

[第1集] 课程简介及算法分析 (Notes)

      在刚刚开始的时候,老师曾经说到一句话:学习在解决问题的时候可以与别人讨论,不过自己要有所思考,才能更快的提高!
 这句话说得太好,学习任何一门知识自己不加思考永远不是自己的,就像自己看一道数学题一眼扫过去没有思路,直接翻参考答案,这样你永远不能得到提高。(现在我已经自己着手去做每一道题目(避免眼高手低),思考,理解,领悟,请教学霸。)

一、算法分析:算法分析是理论研究,是关于计算机程序性能很资源利用的研究,特别关注其性能
 

二、程序设计中,什么比性能更重要?
 正确性、简洁性、稳定性、成本、模块化(修改只影响特定代码)、功能性、用户友好。
 三、为什么要关注性能?
 性能好坏决定着程序是否可行;性能是其他元素的保障;

 四、T(n)定义为输入数据个数为n时的最长时间长度。
 有时候考虑平均时间,这个时候T(n)代表着期望的时间。 期望时间(expected time):每种情况出现的概率乘以运行时间

  渐进分析:忽略掉依赖于机器的常量,以及,不是去检查实际的运行时间,而是关注运行时间的增长   
 对最好的情况分析是假象。

θ渐近符:弃去低阶项,并忽略前面的常熟因子  
渐进符号的伟大之处在于它能一举满足我们对相对和绝对速度的双重比较要求,无论在什么计算平台上都能实现这一点。   

在合理的规模下使用合理的算法,不一定是渐进后的最优算法,因为渐进后实现的最优算法可能无法达到。成了空想      (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)

 通过视频相信自己对于数据结构第一张每年必考的时间复杂度和空间复杂度有了信心,相信自己,你是最好的。      
                                                                                                           

                                                                                                                                        written_by  Maple  7.12    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值