//时间复杂度为O(n) for(i=1;i<=n;i++){ x++ } //时间复杂度为O(n^2) for(i=1;i<=n;i++){ for(i=j;j<=n;j++){ x++; } } //整个算法的时间复杂度为O(n+n^2)=O(n^2)
x=91; y=100; while(y>0){ if(x>100){ x=x-10; y--; } else{ x++; } }
解析:T(n)=O(1)
这个程序看起来有点吓人,总共循环运行了1100次,但是我们并没有看到n。因为这段程序的运行是和n无关的,就算它在循环一万年,也只是一个常数阶的函数。
int num1,num2; for(int i=0;i<n;i++){ num1 +=1; for(int j=1;j<=n;j *=2){ num2 +=num1; } }
原文:http://www.cnblogs.com/fengxiongZz/p/7615589.html