算法分析及算法复杂度
算法分析
一、算法设计要求
1、正确性
2、可读性
3、健壮性:当输入的数据非法时,算法也能做出适当的反应或进行处理,而不会产生莫名其妙的输出结果
4、效率和低存储量要求
二、算法效率的度量
1、时间复杂度:基本操作的重复执行次数,当规模n->∞时,F(n) = O(f(n));f(n)满足当n->∞时,总是存在C,使得F(n)/f(n) <= C(C是常数)即f(n)代表了F(n)的增长趋势,并且是在最坏的情况下的时间复杂度
举例:如下为使用上述定理求解f(n)
2、空间复杂度:算法所需存储空间的度量
上述两者,如果其与问题规模n无关,则对应的复杂度为O(1);
三、算法复杂度化简规则
1、忽略次要项,只留主要影响增长趋势的项
2、系数都可变为1
由此得出如下图的结论:
由于第一条常底数无所谓,所以常常忽略底数,直接记作logn