程式算法

程式算法

程式算法是對特定問題求解過程的描述,是指令的有限序列,每條指令完成一個或多個操作。通俗地講,就是為解決某一特定問題而採取的具體有限的操作步驟。

基本介紹

  • 中文名:程式算法
  • 外文名:programmed algorithm
  • 概念:對特定問題求解過程的描述
程式算法特性,有窮性,確定性,可行性,零個或多個輸入,一個或多個輸出,算法複雜度,時間複雜度,空間複雜度,

程式算法特性

有窮性

在有限的操作步驟內完成。有窮性是算法的重要特性,任何一個問題的解決不論其採取什麼樣的算法,其終歸是要把問題解決好。如果一種算法的執行時間是無限的,或在期望的時間內沒有完成,那么這種算法就是無用和徒勞的,我們不能稱其為算法。

確定性

每個步驟確定,步驟的結果確定。算法中的每一個步驟其目的應該是明確的,對問題的解決是有貢獻的。如果採取了一系列步驟而問題沒有得到徹底的解決,也就達不到目的,則該步驟是無意義的。

可行性

每個步驟有效執行,得到確定的結果。每一個具體步驟在通過計算機實現時應能夠使計算機完成,如果這一步驟在計算機上無法實現,也就達不到預期的目的,那么這一步驟是不完善的和不正確的,是不可行的。

零個或多個輸入

從外界獲得信息。算法的過程可以無數據輸入,也可以有多種類型的多個數據輸入,需根據具體的問題加以分析。

一個或多個輸出

算法得到的結果就是算法的輸出(不一定就是列印輸出)。算法的目的是為解決一個具體問題,一旦問題得以解決,就說明採取的算法是正確的,而結果的輸出正是驗證這一目的的最好方式。

算法複雜度

同一問題可用不同算法解決,而一個算法的質量優劣將影響到算法乃至程式的效率。算法分析的目的在於選擇合適算法和改進算法。一個算法的評價主要從時間複雜度空間複雜度來考慮。

時間複雜度

算法的時間複雜度是指算法需要消耗的時間資源。一般來說,計算機算法是問題規模n 的函式f(n),算法的時間複雜度也因此記做T(n)=Ο(f(n));因此,問題的規模n 越大,算法執行的時間的增長率與f(n) 的增長率正相關,稱作漸進時間複雜度(Asymptotic Time Complexity)。

空間複雜度

算法的空間複雜度是指算法需要消耗的空間資源。其計算和表示方法與時間複雜度類似,一般都用複雜度的漸近性來表示。同時間複雜度相比,空間複雜度的分析要簡單得多。

相關詞條

熱門詞條

聯絡我們