演算法是求解一類問題的任意一種特殊的方法,較嚴格的來說,是對特定問題的求解步驟的一種描述,它是指令的有限序列。
演算法的五個特徵:輸入、輸出、確定性、能行性、有窮性
衡量乙個演算法的效能,主要有以下標準:正確性,簡明性,健壯性,效率。
判斷演算法的效能要考慮的乙個基本特徵就是問題例項的規模,規模一般是輸入量(有時也涉及輸出量)。
演算法的事前分析:在排除程式執行環境的因素後來討論演算法的時間效率。
演算法的事後測試:測試乙個程式在所選擇的的輸入資料下執行時實際所需要的時間。
程式步:語法或語義上有意義的程式段。
程式步的計算例項:
求乙個陣列元素累加之和的遞迴程式,
float sum(float list,int n)
count++;
return 0; //針對return語句
}
當 n = 0 時,所需步數為 2 ;
當 n > 0 時,執行語句和第一句 return;則可表示為
程式步不能確切地反映程式執行的實際時間。
定義:設f(n)和g(n)是定義在正整數上的正函式,如果存在兩個正常數c和n0,使得當n>=no時,有f(n)<=cg(n),則記作f(n) = o(g(n)),被稱為大o記號(big-oh notation)
大o記號用以表達乙個演算法執行時間的上界。當我們說乙個演算法具有o(g(n))的執行時間時,是指該演算法在計算機上的實際執行時間不會超過g(n)的乙個常數倍。
例:設乙個程式的實際執行時間t(n) = 3.6 n^3 + 2.5 n^2 + 2.8 ,則t(n) = o(n^3),o(1)表示常數計算時間,計算法只需執行有限程式步。
注:1bn = log2 n
漸近時間複雜度按從小到大的順序排列為o(1)
演算法和演算法分析
一 演算法的基本概述 演算法是為了解決某類問題而規定的乙個有限長的操作序列。乙個演算法必須滿足以下五個重要特性 1 有窮性2 確定性3 可行性 4 有輸入5 有輸出 二 設計演算法的原則 1.正確性 2.可讀性 3 健壯性 4.高效率與低儲存量需求 三 演算法的時間複雜度簡介 語句頻度 語句重複執行...
演算法和演算法分析
演算法是為了解決某類問題而規定的乙個有限長的操作序列。五個特性 1.有窮性2.確定性3.可行性4.輸入5.輸出 1.正確性2.可讀性3.健壯性4.高效性 1.問題規模和語句頻度 不考慮計算機的軟硬體等環境因素,影響演算法時間代價的最主要因素是問題規模。問題規模是演算法求解問題輸入量的多少,是問題大小...
演算法和演算法分析
1.定義 是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示乙個或多個操作。2.特徵 1 有窮性 乙個演算法必須在執行有窮步之後結束,即演算法中的每個步驟在有限的時間內完成。2 確定性 每條指令必須有確定的含義,無二義性,在任何條件下,演算法都只有一條執行路徑。3 可行性 乙個演...