【算法学习】1.渐进复杂性

算法导论作者的课程(英文有字幕)
顺便学一下英语(x
第一集十六分钟左右正片开始。
在这里插入图片描述
算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
我的理解就是“解题方案”。
特点:有输入,有输出,确定性,有限性
运行时间
取决于本身的输入、输入规模,运行机器等等。

对算法的分析
算法的复杂性C包括时间复杂性T和空间复杂性S
C是一个三元函数,即C=F(N,I,A).
其中N指问题的规模,I指输入的规模,A指算法本身。

T(n)表示程序运行需要的时间。由以下几种情况进行决定最终的T(n)。
最坏情况Wast-case
T(n)表示输入规模为n时,程序运行所需要的(可能的)最长时间。
平均情况Average-case
T(n)表示输入规模为n时,所有可能的输入情况下,程序运行需要的期望时间。
最好情况Best-case

渐进复杂性

用于n无穷大的情况。
取一个公式的最高阶项

可以把公式看成一个算法需要运行的时间与n的关系。

大O表示法【算法运行时间的上界
取得是最高阶项除去它的系数
在这里插入图片描述
用上图表示,则这个算法的大O复杂度为O(n^3),即算法的时间增长最多像 n^3那样快。
阶越低越有价值。

对于两段复杂性不同的程序,选择比较复杂的那一段。

大Ω表示法【算法运行时间的下界
阶越高越有价值。

复杂性排序
常数级<对数级<线性级<多项式级<指数级<阶乘级

【我要去啃一下算法了,因为想考一下蓝桥杯。安卓的学习应该也不会停,因为那是我的小组任务,不能拖后腿。我发誓这几天没学studio只是因为身体不舒服!!】
【刚开始学东西会分不清什么重要什么不重要。就像小时候1+1=2也要记个小笔记。求饶】

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值