概述
假设有以下三段程序:
A. {x++;s+=x;}
----->语句的执行频度为1
B. for(i=1;i<=n;i++)
{x++;s+=x;}
------>语句的执行频度为n
C.for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{x++;s+=x;}
------->语句的执行频度为n^2
行号 执行次数
1 n+1
2 n*(n+1)
3 n^2
该语句的总共的执行次数 f(n) 为 1、2、3行执行语句各条之和:
f(n) = n*(n+1)+n^2+n+1 = 2*n^2 + 2n + 1
上面的函数关系可以很明了的看出算法的执行次数
一般来讲随着问题规模(n)的增大,函数的增张速度较慢的算法为优;
我们经常看到符号“O”来表示数量级的概念;
就是说:上面的函数可以表示成T(n) = O(f(n)) = O(n^2)
含义就是说n 较大时算法的执行时间和n^2 成正比。
T(n)----表示算法的时间复杂度;
最后
以上就是香蕉小笼包为你收集整理的算法分析的全部内容,希望文章能够帮你解决算法分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复