時間複雜度

2021-07-27 10:50:50 字數 703 閱讀 9719

1.時間頻度:乙個演算法中語句的執行次數稱為時間頻度或者語句頻度,用t(n)表示。其中n是問題規模。

2.時間複雜度:若存在乙個輔助函式f(n)使得當n趨近於無窮大的時候t(n)/f(n)趨向於乙個不為0的常數,那麼就是說t(n)和f(n)是同數量級函式,可以表示為t(n)=o(f(n)),o(f(n))稱為漸進時間複雜度,簡稱時間複雜度。

時間複雜度相同,但是時間頻度不一定相同。

計算出f(n)以後,可以忽略掉其最高次冪的係數和其他低次冪的項。

3.常見的時間複雜度按數量級排序依次為 常數階o(1) 對數階o(log 2 n) 線性階o(n) 線性對數階 o(n log 2 n) 平方階o(n^2)  立方階 o(n^3)  k次方階 o(n^k) 指數階 o(2^n)……

4.對於同乙個問題,解決的演算法不一樣,時間複雜度也就可能是不一樣的,由於時間複雜度和問題規模n有關,所以在選取演算法時要考慮n的大小來確定到底哪乙個是時間複雜度最優的演算法。具體可以在同一座標軸中畫出n^2和n^3的影象,在不同區域內兩個函式值大小不一樣。

5.最好,最壞和平均時間複雜度:對於某些演算法,時間複雜度不僅僅取決於時間頻度,還依賴於其他因素。比如在乙個陣列中尋找4,那麼4 的位置就影響了時間複雜度。4可能在第乙個位置找到f(n)=1,也可能在最後乙個位置找到f(n)=n。平均時間複雜度就是最好情況和最壞情況下的平均值。

實際上,人們更關注最壞時間複雜度和平均時間複雜度,通常都是計算最壞時間複雜度。

dfs時間複雜度 時間複雜度 空間複雜度

時間複雜度的數學證明方法相對比較複雜,通常在工程實際中,會分析就好。注意 只看最高複雜度的運算 int for for for for int遞迴如何分析時間複雜度?常數係數可以忽略,在分析時不用考慮,只要說以上術語即可。主定理 master throrem 上述第四種是歸併排序,所有排序演算法,最...

時間複雜度 空間複雜度

時間複雜度 在電腦科學中,演算法的時間複雜度是乙個函式,它定性描述了該演算法的執行時間。這是乙個關於代表演算法輸入值的字串 的長度的函式。時間複雜度常用大o符號 表述,不包括這個函式的低階項和首項係數。計算時間複雜度的方法 1 只保留高階項,低階項直接丟棄 2 係數不要 3 執行次數是常數是為o 1...

時間複雜度 空間複雜度

演算法複雜度分為時間複雜度和空間複雜度。其作用 時間複雜度是指執行演算法所需要的計算工作量 而空間複雜度是指執行這個演算法所需要的記憶體空間。一 時間複雜度 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道...