- 时间性能分析:算法占用cpu的多少
- T(n):算法的频度
- O(n):时间复杂度
1.找出所有语句的频度并组成执行次数T(n)
2.T(n)的数量级,忽略常量、低次幂和最高次幂的系数,f(n)=T(n)的数量级
3.T(n)=O(f(n)) - 时间复杂度与执行次数有关。
例:
int num1, num2;//频度为1
for(int i=0; i<n; i++)//i++和i<n频度为n,i=0频度为1
{
num1 += 1;//频度为n
for(int j=1; j<=n; j*=2)//j=1频度为n,j<=n; j=2频度为n*log2(n)
{
num2 += num1;//num2+=num1频度为n*log2(n)
}
}
注意:log2(n)
循环x次,j=2^x ,当j=n时停止循环,2^x=n。log2(n)=x时停止 ,即循环次数为log2(n)。
T(n) = 2 + 4n + 3n*log2(n)
忽略掉T(n)中的常量、低次幂和最高次幂的系数。
f(n) = n*log(n)
T(n) =O(f(n))= O(n*log(n))
- Ο(1)<Ο(logn)<Ο(n)<Ο(nlogn)<Ο(n2)<Ο(n3)<…<Ο(2^n)和Ο(n!)