面试首页投稿(暂停使用,暂停投稿)程序员

1.三步计算时间复杂度

2016-07-29  本文已影响4252人  KaelQ

1 时间复杂度概述

时间复杂度简化了我们的比较方法。

2 时间复杂度计算

 int num1, num2;            
 for(int i=0; i<n; i++){ 
     num1 += 1;
     for(int j=1; j<=n; j*=2){ 
        num2 += num1;
     }
 }

1.语句int num1, num2;的频度为1
语句i=0;的频度为1
语句i<n; i++; num1+=1; j=1; 的频度为n
语句j<=n; j=2; 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*log2n
2.忽略掉T(n)中的常量、低次幂和最高次幂的系数。
f(n) = n*logn
3.代入公式
T(n) =O(f(n))= O(n*logn)

3.时间复杂度比较

Ο(1)<Ο(logn)<Ο(n)<Ο(nlogn)<Ο(n2)<Ο(n3)<…<Ο(2^n)和Ο(n!)
一些大小需要根据问题的规模n来进行判断。

上一篇下一篇

猜你喜欢

热点阅读