帶大家簡單理解一下時間複雜度

2021-10-10 15:45:41 字數 1088 閱讀 2566

時間複雜度:

理論上,執行乙個演算法消耗的時間,是無法精確計算的,即使上機測試,收到各種因素影響,得到的時間也可能有較大差別。對於程式設計師,我們只需關注哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。

針對執行時間,我們可以根據演算法執行的語句的次數,進行乙個簡單的衡量。理論上,乙個演算法中語句執行次數多,它花費時間相對也多,因此,演算法執行的時間與演算法中語句的執行次數成正比。我們將演算法中的語句的執行次數稱為時間頻度,表示為t(n),其中,n表示演算法的輸入規模,n的變化會引起t(n)的改變。

為了得到t(n)變化時表現的規律,我們引入時間複雜度的概念。若有某個函式f(n),當n趨近於無窮大時,t(n)/f(n)的極限值為不等於零的常數,則稱f(n)是t(n)的同數量級函式,表示為t(n)=o(f(n)),o(f(n))稱為演算法的漸進時間複雜度,簡稱時間複雜度。

接下來我們看一看以下四種情況的時間複雜度:

1. 時間複雜度 o(n)

public

static

void

main

(string[

] args)

//忽略常數項部分

//跟隨著n的變化而執行次數也變化,就是o(n)時間複雜度

}

2. 時間複雜度 o(2n)

public

static

void

main

(string[

] args)

}}

3. 時間複雜度 o(n^2)

public

static

void

main

(string[

] args)

}}

4. 時間複雜度o(1)

public

static

void

main

(string[

] args)

簡單理解演算法時間複雜度

在電腦科學中,演算法的時間複雜度 time complexity 是乙個函式,它定性描述該演算法的執行時間。這是乙個代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,亦即考察輸入值大小趨近無窮時的情況。我們假...

理解時間複雜度

本篇概念皆是關於時間複雜度 首先需要了解乙個概念 乙個演算法中的語句執行次數稱為語句頻度或時間頻度。記為 t n 乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多 n 稱為問題的規模,當 n 不斷變化時,時間頻度 t n 也會不斷變化。但有時我們想知道...

概念理解 時間複雜度 空間複雜度

一.時間複雜度 time complexity 在進行演算法分析時,語句總執行次數t n 是關於問題規模 n 的函式。進而分析執行次數t n 隨規模 n 的變化情況並確定t n 的數量級。演算法的時間複雜度就是演算法的時間度量,記作t n o f n 它表示隨問題規模 n 的增大,演算法的執行時間的...