我是靠谱客的博主 香蕉小笼包,最近开发中收集的这篇文章主要介绍算法分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

假设有以下三段程序:

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)----表示算法的时间复杂度;

最后

以上就是香蕉小笼包为你收集整理的算法分析的全部内容,希望文章能够帮你解决算法分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部