時間複雜度的個人看法

2021-09-11 07:28:03 字數 1165 閱讀 1462

時間複雜度是為了描述執行演算法所需要的相對時間。

用o()來表述。

常見的演算法時間複雜度由小到大依次為:ο(1)<ο(log2n)<ο(n)<ο(nlog2n)<ο(n²)<ο(n³)<…<ο(2ⁿ)<ο(n!)

下面用例子來說明時間複雜度

int num1 = 1;

int num2 = 2;

int num2=3 = num1 + nun2;

int num1 = 1;

int num2 = 2;

if (num2 > num1) else

類似以上兩種沒有涉及n的for迴圈的時間複雜度都為o(1)級

int sum = 0;

for (int i = 0; i < n; i++)

int sum = 0;

for (int i = 0; i < n; i++)

}

類似以上兩種只有乙個涉及n的for迴圈的時間複雜度都為o(n)級,

第一種的時間複雜度可以認為是o(n),

第二種的時間複雜度可以認為是o(5n);

所以這兩種的時間複雜度都稱之為o(n)級。

int sum = 0;

for (int i = 0; i < n; i++)

}

以上這種具有兩個涉及n的for迴圈的時間複雜度為o(n²)。

int num = 1;

while (num < n)

int num = 1;

for (int i = 0; i < n; i *= 2)

類似以上兩種n在條件中跟自變數(指while中的num 和 for 中的i)呈對數關係,則時間複雜度為ο(log2n)。

ok,關於時間複雜度就先到這裡,至於ο(nlog2n)、ο(2ⁿ)、ο(n!)這三個為什麼不舉例子。

因為我還不會(๑• . •๑)

ps:不會打下標,敬請諒解。

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

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

時間複雜度 空間複雜度

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

時間複雜度 空間複雜度

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