Lecture 4

绪论

比起课本上更加详细的时间复杂度的介绍。


Justification for analysis

这一章的标题是algortihm analysis,也就是算法分析。算法是用数学,计算机来解决问题的方法,在得到算法之后,我们需要从算法运行的快慢,空间的占用大小,利用率,出错的概率等不同的角度来评判和比较这些算法,从而在不同的场合选择不同的算法。

在这里插入图片描述
这个评判和比较的过程从学科专业的角度就叫做算法分析。

ppt这里举了一些例子,比如在有序表中寻找某个元素。

在这里插入图片描述
这里提供了线性查找和二分查找两种算法。

在这里插入图片描述

初始化给数组a中的第i个元素赋值为i-1,然后用两种不同的算法将0到n-1的数值全部查找一遍,计算查找完所有元素所花的时间。

在这里插入图片描述
结果就是n为0-1000时,两个算法的效率各有快慢。

在这里插入图片描述

然而当n逐渐变大时,两个算法的效率出现了显明的差异。

在这里插入图片描述

所以我们从效率图的直观角度认为对于较大的数据二分查找算法的效率更高。

分析图象能够大概估算出两种算法所耗费的时间t和数据n存在哪种运算的关系,二分查找大概是nlogn,线性查找为n2(不计常数)。

在这里插入图片描述

但是这么直观观察肯定无法运用到众多的算法分析当中。于是引入一个概念(或者说符号)来描述这个从数据规模n到耗费时间t的函数关系,这个概念我们称为Landau symbols (a.k.a. Big-O notation),朗读符号,aka大O符号(aka原来是这么正规的名词么)。

在这里插入图片描述
因为这个函数的计算是不计常数且不计低次数位也就是一个渐进的计算,这个概念又称渐进(时间/空间)复杂度。


Landau symbols

有关朗道符号,首先需要知道一个事实:对于最高次项相同的多项式,即使后面的低次项差异很大,当n的值较大时,最终结果的差异就整体很小,可以忽略不计。

n较小时,差异还是比较大的:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值