時間複雜度O(n)複習

簡易理解爲,算法程序執行過程中,所消耗的時間。(不僅用於表示時間複雜度,也用於表示空間複雜度)

 

大O表示法  有如下規則:

1.用常數1取代運行時間中的所有加法常數

2.只保留最高階項

3.去除最高階的常數

 

O後面的括號中有一個函數,指明某個算法的耗時/耗空間與數據增長量之間的關係。其中的n代表輸入數據的量。 
比如時間複雜度爲O(n),就代表數據量增大幾倍,耗時也增大幾倍。比如常見的遍歷算法

這裏舉例對數階,套用上述規則,下面代碼執行次數logn + 1,保留高階項,去除高階常數,所以時間複雜度是O(logn):

int t = 2;//執行1次

while (t < n){ 

   t *= 2; //執行了logn次

}

這段代碼while裏面要判斷執行次數,假設執行次數是x那麼要成立2^x > n,所以得出來的執行次數就是logn(對數可以簡單理解爲一種數字規則,大數“降維”吧,比如8,16,32    以2爲底的對數分別爲3,4,5)

其他常數階O(1)、線性階O(n)、平方階O(n²)等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章