空間復(fù)雜度怎么算 什么叫時間復(fù)雜度和空間復(fù)雜度?
什么叫時間復(fù)雜度和空間復(fù)雜度?時間復(fù)雜度是程序的運(yùn)行時間或次數(shù);空間復(fù)雜度是程序占用的空間;以下程序:int a[1000000]int CNT=0for(int i=0 ifor(int j=0 j
什么叫時間復(fù)雜度和空間復(fù)雜度?
時間復(fù)雜度是程序的運(yùn)行時間或次數(shù);
空間復(fù)雜度是程序占用的空間;
以下程序:
int a[1000000
]int CNT=0
for(int i=0 i
for(int j=0 j
a[CNT]=0
空間主要是一個大小為1000000的數(shù)組a;時間是復(fù)雜的兩個for循環(huán)。第一個循環(huán)要做一次,第二個循環(huán)要做1000次,第一個循環(huán)要做1000次,一共1000×1000次
如果兩個循環(huán)分別對應(yīng)m和N次,那么要做的次數(shù)就是m*N
你能聽懂前兩句話嗎?
什么叫時間復(fù)雜度和空間復(fù)雜度?
當(dāng)計(jì)算機(jī)完成任務(wù)時,它有兩個指示器:時間和所有內(nèi)存(即空間)。兩者呈負(fù)相關(guān)。也就是說,在設(shè)計(jì)特定的程序時,可以選擇使用更多的內(nèi)存,這樣可以提高程序的速度,也就是減少程序的運(yùn)行時間。另一方面,也可以選擇使用較少的內(nèi)存,這樣可以節(jié)省內(nèi)存,但同時,程序運(yùn)行速度會變慢,這意味著程序運(yùn)行時間會更長??傊撍惴ㄖ挥袃煞N策略,一種是以時間換空間,另一種是以空間換時間。直接答案是高空間復(fù)雜度和低時間復(fù)雜度的算法,反之亦然。