什么是算法
一、算法定义(Algorithm)
1、一个有限的指令集
2、接受一些输入(有些情况不需要输入)
3、产生输出
4、一定在有限步骤之后终止
5、每一条指令必须:
①有充分明确的目标,不可以有歧义
②计算机能处理的范围之内
③描述不应依赖与任何一种计算机语言及其具体的实现手段
二、一个好的算法
1、空间复杂度S(n)——执行时占用储存单元的长度
2、时间复杂度T(n)——执行时耗费时间的长度
在分析一般算法效率时,长关注以下两种复杂度
·最坏情况复杂度Tworst(n)
·平均复杂度Tavg(n)
而平均一般难以求得,故常分析最坏复杂度
复杂度的渐进表示法
·Tn = O(f(n))表示存在常数C >0,n₀>0使得当n≥n₀时有T(n) ≤ C·f(n).
·Tn = Ω(f(n))表示存在常数C >0,n₀>0使得当n≥n₀时有T(n) ≥ C·f(n).
·Tn = Θ(f(n))表示同时有Tn = O(f(n))和Tn = Ω(f(n)).
复杂度分析
·若两端算法分别有复杂度T₁n = O(f₁(n))和T₂n = O(f₂(n)),则
T₁n + T₂n = max( O(f₁(n)), O(f₂(n) )
T₁n * T₂n = O( f₁(n) * f₂(n) )
·若T(n)是关于n的k阶多项式,那么T(n) = Θ(n^k)
·for循环的时间复杂度为循环次数n乘以循环体复杂度
·if-else取决于if的条件判断和两个分支部分,复杂度取三者中最大

浙公网安备 33010602011771号