我是靠谱客的博主 香蕉小笼包,这篇文章主要介绍算法分析,现在分享给大家,希望可以做个参考。

假设有以下三段程序:

复制代码
1
A. {x++;s+=x;}

  ----->语句的执行频度为1

复制代码
1
2
B. for(i=1;i<=n;i++) {x++;s+=x;}

------>语句的执行频度为n

复制代码
1
2
3
C.for(i=1;i<=n;i++) for(j=1;j<=n;j++) {x++;s+=x;}
------->语句的执行频度为n^2


复制代码
1
2
3
     行号 执行次数 1 n+1 2 n*(n+1)
复制代码
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)----表示算法的时间复杂度;

最后

以上就是香蕉小笼包最近收集整理的关于算法分析的全部内容,更多相关算法分析内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部