穷举法
只适用于规模较小的情况
算法效率的度量方法
1.算法采用的策略、方案
2.编译产生的代码质量
3.问题的输入规模
4.机器执行指令的速度
1+...+100
第一种:
for(i=1;i<=n;i++) //执行了n+1次 { sum=sum+i; //执行了n次 }
总:2n+1
第二种:
sum=(1+n)*n/2 //执行1次
总:1
两个算法就是n和1的差距
第三种:
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
x++;
sum=sum+x
}
}
研究算法复杂度,侧重的是研究算法随着输入规模扩大增长量的一个抽象,而不是精确地定位需要执行多少次。因为那样的话,就要考虑编译器的优化问题。
函数的渐进增长
基本操作:赋值,比较等等
总结
判断一个算法效率时:常数可以忽略,最高项系数可以忽略,影响算法的主要是最高项的指数