時間復(fù)雜度
分析方法:
- 只要關(guān)注最大階級的量級即可怠堪。
- 加法法則:總復(fù)雜度等于量級最大的那段代碼的復(fù)雜度
- 乘法法則:嵌套代碼復(fù)雜度等于嵌套內(nèi)外代碼復(fù)雜度的乘積
不同復(fù)雜度大小比較:
常見復(fù)雜度分析:
-
:
表示復(fù)雜為度常量級蚁署,并不是執(zhí)行一行代碼愿伴。
比如
int j = 8;
int j = 6;
int sum = i + j;
也是
- :
i = 1;
while (i <= n)
{
i=i*2;
}
這個算法就是所以可以得出,所以時間復(fù)雜度為铅搓。
如果代碼修改為
i = 1;
while (i <= n)
{
i=i*3;
}
則為得出狡门,復(fù)雜度為.
因為對數(shù)之間可以用換底公式相互轉(zhuǎn)化陷寝,即即他們之間只有一個常量級,所以他們復(fù)雜度都記為O()其馏。
常見算法有二分查找
而就是循環(huán)執(zhí)行n遍的結(jié)果凤跑。
快速排序復(fù)雜度最大時間復(fù)雜度為
3.
這種情況下是兩個加法塊代碼但無法判斷m和n誰大時使用