時間複雜度:
理論上,執行乙個演算法消耗的時間,是無法精確計算的,即使上機測試,收到各種因素影響,得到的時間也可能有較大差別。對於程式設計師,我們只需關注哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。
針對執行時間,我們可以根據演算法執行的語句的次數,進行乙個簡單的衡量。理論上,乙個演算法中語句執行次數多,它花費時間相對也多,因此,演算法執行的時間與演算法中語句的執行次數成正比。我們將演算法中的語句的執行次數稱為時間頻度,表示為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 的增大,演算法的執行時間的...