演算法和演算法分析概念

2021-07-30 22:40:14 字數 1080 閱讀 1092

演算法是求解一類問題的任意一種特殊的方法,較嚴格的來說,是對特定問題的求解步驟的一種描述,它是指令的有限序列。

演算法的五個特徵:輸入、輸出、確定性、能行性、有窮性

衡量乙個演算法的效能,主要有以下標準:正確性,簡明性,健壯性,效率。

判斷演算法的效能要考慮的乙個基本特徵就是問題例項的規模,規模一般是輸入量(有時也涉及輸出量)。

演算法的事前分析:在排除程式執行環境的因素後來討論演算法的時間效率。

演算法的事後測試:測試乙個程式在所選擇的的輸入資料下執行時實際所需要的時間。

程式步:語法或語義上有意義的程式段。

程式步的計算例項:

求乙個陣列元素累加之和的遞迴程式,

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 可行性 乙個演...