演算法複雜度(挺好的比喻)

2021-08-30 12:49:46 字數 402 閱讀 9108

雖然看書也能看懂,但越看越覺得這比喻挺好的。

複雜度只算「最要命的」,比如,執行n^2的演算法前來個快排根本不拖速度,n^2多的都豁出去了不在乎區區乙個nlogn。

書裡對複雜度進行了嚴格的定義,包括o()、o()、θ()、ω()四種符號。

簡單地說,

o(n^2)就是頂破天了搞個n^2次;

o(n^2)就是天花板不到n^2,比n^2矮一點(比如希爾排序就是o(n^2),因為它再倒霉也達不到n^2);

ω(n^2)就是說某個演算法隨便怎麼至少都要耗費n^2,比如所有基於比較的排序都是ω(nlogn);

θ(n^2)就是說它即是o(n^2)又是ω(n^2),被天花板和水泥地夾在中間了,動不了了,就是它了。

參考資料:matrix67牛的部落格

演算法的複雜度 演算法的時間複雜度和空間複雜度

在一次筆試題目中,發現了自己對於演算法的時間複雜度問題上並沒有完全清晰這個概念和計算方法,故上網尋找到比較好的詳細介紹來學習。演算法的時間複雜度和空間複雜度合稱為演算法的複雜度。1.時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也...

演算法的複雜度 時間複雜度與空間複雜度

通常,對於乙個給定的演算法,我們要做 兩項分析。第一是從數學上證明演算法的正確性,這一步主要用到形式化證明的方法及相關推理模式,如迴圈不變式 數學歸納法等。而在證明演算法是正確的基礎上,第二步就是分析演算法的時間複雜度。演算法的時間複雜度反映了程式執行時間隨輸入規模增長而增長的量級,在很大程度上能很...

演算法複雜度 時間複雜度和空間複雜度

1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數...