同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。
1
、時間複雜度
演算法的時間複雜度是指執行演算法所需要的時間。一般來說,計算機演算法是問題規模
n 的函式
f(n)
,演算法的時間複雜度也因此記做
t(n)=ο(f(n))
因此,問題的規模
n 越大,演算法執行的時間的增長率與
f(n)
的增長率正相關,稱作漸進時間複雜度(
asymptotic time complexity)。
2
、空間複雜度
演算法的空間複雜度是指演算法需要消耗的記憶體空間。其計算和表示方法與時間複雜度類似,一般都用複雜度的漸近性來表示。同時間複雜度相比,空間複雜度的分析要簡單得多。
演算法及其分析
乙個演算法是對特定問題的求解步驟的一種描述,它是指令的有限序列。演算法的5個特徵 輸入 零個或者多個輸入 輸出 至少乙個輸出 確定性 沒有二義性 能行性有窮性 執行有限步後終止 演算法可以用自然語言 流程圖或者程式語言描述。衡量演算法效能的標準 正確性 執行結果應當滿足預先規定的功能和效能要求 簡明...
排序演算法優劣
對n較大的排序記錄。一般的選擇都是時間複雜度為o nlog2n 的排序方法。時間複雜度來說 1 平方階 o n2 排序 各類簡單排序 直接插入 直接選擇和氣泡排序 2 線性對數階 o nlog2n 排序 快速排序 堆排序和歸併排序 3 o n1 排序,是介於0和1之間的常數。希爾排序 4 線性階 o...
排序演算法優劣
對n較大的排序記錄。一般的選擇都是時間複雜度為o nlog2n 的排序方法。時間複雜度來說 1 平方階 o n2 排序 各類簡單排序 直接插入 直接選擇和氣泡排序 2 線性對數階 o nlog2n 排序 快速排序 堆排序和歸併排序 3 o n1 排序,是介於0和1之間的常數。希爾排序 4 線性階 o...