時間複雜度

2021-09-03 00:12:44 字數 1073 閱讀 2044

首先要搞清楚幾個概念:演算法、時間、問題規模、時間頻度、語句頻度、時間複雜度。

(1)演算法:演算法是指解決特定問題的方法,人通過編寫程式**實現該方法,最終被翻譯成一系列指令給計算機執行計算。

(2)時間:時間指執行演算法消耗的時間,也就是計算機執行上述一系列指令的時間。該時間受一下四個因素影響:

(3)語句頻度和時間頻度

乙個演算法中的語句執行次數稱為語句頻度時間頻度, 記為t(n)。

(4)時間複雜度

t(n)中的n稱為問題的規模,當n不斷變化時,時間頻度t(n)也會不斷變化。但有時我們想知道它變化時呈現什麼規律。為此,我們引入時間複雜度概念。

一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n)使得當n趨近於無窮大時,t(n)/f(n)的極限值為不等於0的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n))。

o(f(n))則為演算法的漸進時間複雜度,簡稱時間複雜度。時間複雜度是表示乙個函式的趨勢,並不代表具體值。

注意:時間頻度和時間複雜度是不同的,時間頻度不同但時間複雜度可能相同。

舉個栗子:t(n)=4n^2+2n-1t(n)=n^2+3n+4時間頻度不同,但時間複雜度是相同的o(n^2)

名詞解釋:

n:問題的規模,重複執行的次數;

t(n):一段程式執行,各種操作**所執行的總次數;

f(n):存在的某個函式,使得t(n)/f(n)=非零常數,那麼f(n)稱為t(n)的同數量級函式;

o:大o符號,一種符號,表示漸進於無窮的行為;

(5)時間複雜度的種類

時間複雜度主要分為三種:

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

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

時間複雜度 空間複雜度

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

時間複雜度 空間複雜度

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