mirror of
https://github.com/krahets/hello-algo.git
synced 2026-05-11 11:07:14 +08:00
deploy
This commit is contained in:
@@ -3609,7 +3609,7 @@
|
||||
<p>一方面,<strong>難以排除測試環境的干擾因素</strong>。硬體配置會影響演算法的效能表現。比如一個演算法的並行度較高,那麼它就更適合在多核 CPU 上執行,一個演算法的記憶體操作密集,那麼它在高效能記憶體上的表現就會更好。也就是說,演算法在不同的機器上的測試結果可能是不一致的。這意味著我們需要在各種機器上進行測試,統計平均效率,而這是不現實的。</p>
|
||||
<p>另一方面,<strong>展開完整測試非常耗費資源</strong>。隨著輸入資料量的變化,演算法會表現出不同的效率。例如,在輸入資料量較小時,演算法 <code>A</code> 的執行時間比演算法 <code>B</code> 短;而在輸入資料量較大時,測試結果可能恰恰相反。因此,為了得到有說服力的結論,我們需要測試各種規模的輸入資料,而這需要耗費大量的計算資源。</p>
|
||||
<h2 id="212">2.1.2 理論估算<a class="headerlink" href="#212" title="Permanent link">¶</a></h2>
|
||||
<p>由於實際測試具有較大的侷限性,因此我們可以考慮僅透過一些計算來評估演算法的效率。這種估算方法被稱為<u>漸近複雜度分析(asymptotic complexity analysis)</u>,簡稱<u>複雜度分析</u>。</p>
|
||||
<p>由於實際測試具有較大的侷限性,我們可以考慮僅透過一些計算來評估演算法的效率。這種估算方法被稱為<u>漸近複雜度分析(asymptotic complexity analysis)</u>,簡稱<u>複雜度分析</u>。</p>
|
||||
<p>複雜度分析能夠體現演算法執行所需的時間和空間資源與輸入資料大小之間的關係。<strong>它描述了隨著輸入資料大小的增加,演算法執行所需時間和空間的增長趨勢</strong>。這個定義有些拗口,我們可以將其分為三個重點來理解。</p>
|
||||
<ul>
|
||||
<li>“時間和空間資源”分別對應<u>時間複雜度(time complexity)</u>和<u>空間複雜度(space complexity)</u>。</li>
|
||||
|
||||
Reference in New Issue
Block a user