牢記一句話:
-
將算法中的
基本操作
的執(zhí)行次數(shù)
作為算法時(shí)間復(fù)雜度的度量 !在分析過程中總能找到一個(gè) n ,稱之為問題的規(guī)模。
步驟:
step 1 : 找到基本操作(多數(shù)情況下為最深層循環(huán)內(nèi)語(yǔ)句的操作)朵诫,確定規(guī)模 n .
step 2 : 計(jì)算出 f(n) : 由規(guī)模 n , 執(zhí)行次數(shù) k 的關(guān)系確定k = f(n)
step 3 : O(f(n)) : f(n)中增長(zhǎng)最快的項(xiàng)
例
分析一下代碼時(shí)間復(fù)雜度
EX 1:
void fun(int n)
{
int i, j, x=0;
for(i=1; i< n; ++i)
{
for(j=i+1; j<=n; ++j)
{
++x;
}
}
return;
}
EX 1
EX 2:
void fun(int n)
{
int i = 0;
int s = 0;
while(s < n)
{
++i;
s = s+i;
}
return;
}
EX 2