1 回答
TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
簡(jiǎn)單理解,時(shí)間復(fù)雜度就是執(zhí)行語(yǔ)句被調(diào)用了多少次。
(1)如果只調(diào)用了一次,如:
x=5;
if(x<-4)
{x=x+4;}
else
{x=x+3;}
在大括號(hào)中的內(nèi)容,只會(huì)調(diào)用一個(gè)語(yǔ)句,那么O(n)=1;
(2)如果調(diào)用了兩次,如:
x=5;
if(x<-4)
{x=x+4;}
else
{x=x+3;}
x=x+56;
在大括號(hào)中的內(nèi)容,只會(huì)調(diào)用一個(gè)語(yǔ)句,但是在最后,還有一個(gè)計(jì)算公式要調(diào)用語(yǔ)句;總共加起來(lái)就是調(diào)用2次。那么O(n)=2;
(3)用1個(gè)FOR循環(huán)調(diào)用
for(x=0;x<n;x++)
{x=x+1;}
x會(huì)從0到n-1循環(huán),執(zhí)行的語(yǔ)句就是將當(dāng)前x值加入新的x中,總共調(diào)用n次;那么O(n)=n;
(4)用2個(gè)嵌套FOR循環(huán)調(diào)用
for(x=0;x<n;x++)
{
for(y=1;y<=n;y++)
{x=x+y;}
}
遇到嵌套循環(huán),可以先將外面的FOR語(yǔ)句中的變量固定為初始值x=0,主要看里面的FOR語(yǔ)句的時(shí)間復(fù)雜度,很明顯,里面語(yǔ)句執(zhí)行次數(shù)是從1到n總共調(diào)用n次,O(n)=n;這還只是x=0時(shí)的調(diào)用。x可以從0到n-1,共n次。每次調(diào)用都會(huì)執(zhí)行n次調(diào)用y的情況,因此,執(zhí)行語(yǔ)句x=x+y;總共會(huì)調(diào)用n*n次。O(n)=n^2。
數(shù)執(zhí)行語(yǔ)句的執(zhí)行次數(shù),就是時(shí)間復(fù)雜度。注意:
(1)找到正確的執(zhí)行語(yǔ)句。
(2)for循環(huán)中的初始值和終止值。
for(i=0;i<n;i++) i值變化是從0到n-1,共n次。
for(i=0;i<=n;i++) i值變化是從0到n,共n+1次。
(3)注意for循環(huán)的調(diào)用順序,從里面到外面進(jìn)行的。
- 1 回答
- 0 關(guān)注
- 701 瀏覽
添加回答
舉報(bào)
