時間複雜度分析 大O記法

2021-10-06 00:02:52 字數 405 閱讀 5607

就是看乙個程式執行消耗的時間,這個最簡單的分析方法但是有很大的缺點

用這種方式去測試需要等待程式執行完畢,浪費了很多時間在等待程式執行上

對於不同的硬體條件,程式執行的速度都是不一樣的,這樣的結果就沒有說服力

程式設計師主要關注的是

使用什麼演算法實現

乙個問題的規模

設t(n)為問題規模n的函式,有t(n) = o(f(n))這表示隨著問題規模n的增長,程式執行的時間增長率與f(n)的增長率相同

用常數1代替所有執行時間中的加法常數

只保留最高項

有最高項將其常數因子改為1

o(n)

o(n2)

o(logn):為什麼不宣告底數呢,因為隨著n的增加,不同底數的增產趨勢是一樣的

o(1)

演算法的時間複雜度與大O記法

演算法的時間複雜度 演算法的時間複雜度是乙個關於問題規模n的函式,而且這個函式描述了cpu執行演算法所需要的時間。大o記法 描述時間複雜度優劣的一種記法。2 推導大o階的方法 假設演算法的時間複雜度為t n 1.只保留最高端項 2.將最高端項的常數改為1 第一步 計算語句執行次數t n void m...

時間複雜度 大O演算法

演算法的執行效率,就是演算法 的執行時間。我們需要能夠用肉眼就看出一段 的執行時間。int cal int n return sum 2,3行都執行了1個unit time的執行時間,4,5行都執行了n遍,所以是2n unit time的執行時間,所以一共是 2n 2 unit time。所有的 的...

大O符號與時間複雜度

大o符號 big o notation 是用於描述函式漸進行為的數學符號。也可以這麼說 用乙個大o,在其括號 中,用另乙個函式來描述原來的函式的數量級的漸進上界 電腦科學中,用於分析演算法複雜性非常有用 這個符號有兩種形式上很接近但迥然不同的使用方法 無窮大漸近與無窮小漸近。然而這個區別只是在運用中...