關(guān)于算法的時間復(fù)雜度是什么意思,算法的時間復(fù)雜度這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、"時間復(fù)雜度 (1)時間頻度 1個算法執(zhí)行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才可以知道。
2、但我們不可能也木有必要對每一個算法都上機測試,只需知道哪個算法花費的時間多,哪個算法花費的時間少就可以了。
3、并且1個算法花費的時間與算法中語句的執(zhí)行次數(shù)成正比例,哪個算法中語句執(zhí)行次數(shù)多,它花費時間就多。
4、1個算法中的語句執(zhí)行次數(shù)稱為語句頻度或時間頻度。
5、記為T(n)。
6、 (2)時間復(fù)雜度 在剛才提到的時間頻度中,n稱為問題的規(guī)模,當(dāng)n不斷變化時,時間頻度T(n)也會不斷變化。
7、但有時我們想知道它變化時呈現(xiàn)啥規(guī)律。
8、為此,我們引入時間復(fù)雜度概念。
9、 一般情形下,算法中基本操作重復(fù)執(zhí)行的次數(shù)是問題規(guī)模n的某個函數(shù),用T(n)表示,若有某個輔助函數(shù)f(n),使得當(dāng)n趨近于無窮大時,T(n)/f(n)的極限值為不等于零的常數(shù),則稱f(n)是T(n)的同數(shù)量級函數(shù)。
10、記作T(n)=O(f(n)),稱O(f(n)) 為算法的漸進時間復(fù)雜度,簡稱時間復(fù)雜度。
11、 在各種不一樣算法中,若算法中語句執(zhí)行次數(shù)為1個常數(shù),則時間復(fù)雜度為O(1),另外,在時間頻度不相同時,時間復(fù)雜度有可能相同,如T(n)=n^2+3n+4與T(n)=4n^2+2n+1它們的頻度不一樣,但時間復(fù)雜度相同,都為O(n^2)。
12、 按數(shù)量級遞增排列,常見的時間復(fù)雜度有: 常數(shù)階O(1),對數(shù)階O(log2n),線性階O(n), 線性對數(shù)階O(nlog2n),平方階O(n^2),立方階O(n^3),..., k次方階O(nk),指數(shù)階O(2n)。
13、隨著問題規(guī)模n的不斷增大,上述時間復(fù)雜度不斷增大,算法的執(zhí)行效率越低。
14、2、空間復(fù)雜度 與時間復(fù)雜度類似,空間復(fù)雜度是指算法在計算機內(nèi)執(zhí)行時所需存儲空間的度量。
15、記作: S(n)=O(f(n)) 我們一般所討論的是除正常占用內(nèi)存開銷外的輔助存儲單元規(guī)模。
16、討論方法與時間復(fù)雜度類似,不再贅述。
17、"。
本文分享完畢,希望對大家有所幫助。
標簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!