時間複雜度

時間複雜度是總運算次數表達式中受n的變化影響最大的那一項(不含係數)

一、計算方法

1. 一個算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知道。但我們不可能也沒有必要對每個算法都上機測試,只需知道哪個算法花費的時間多,哪個算法花費的時間少就可以了。並且一個算法花費的時間與算法中語句的執行次數成正比例,哪個算法中語句執行次數多,它花費時間就多。一個算法中的語句執行次數稱爲語句頻度或時間頻度。記爲T(n)。
2. 一般情況下,算法的基本操作重複執行的次數是模塊n的某一個函數f(n),因此,算法的時間複雜度記做:T(n)=O(f(n))。隨着模塊n的增大,算法執行的時間的增長率和f(n)的增長率成正比,所以f(n)越小,算法的時間複雜度越低,算法的效率越高。
   在計算時間複雜度的時候,先找出算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出T(n)的同數量級,找出後,f(n)=該數量級,若T(n)/f(n)求極限可得到一常數c,則時間複雜度T(n)=O(f(n))。

二、常見的時間複雜度

按數量級遞增排列,常見的時間複雜度有:
常數階O(1), 對數階O(log2n), 線性階O(n), 線性對數階O(nlog2n), 平方階O(n^2) 立方階O(n^3),...,k次方階O(n^k),指數階O(2^n) 
看for循環,來計算,
分檢索是 O(logn)的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章