算法和程序的區別:
(1)兩者定義不同。算法是對特定問題求解步驟的描述,它是有限序列指令。而程序是實現預期目的而進行操作的一系列語句和指令。
說通俗一些算法是解決一個問題的思路,程序,是解決這些問題所具體好寫的代碼。算法沒有語言界限。他只是一個思路。為實現相同的一個算法,用不同語言編寫的程序會不一樣。
(2)兩者的書寫規定不同。程序必須用規定的程序設計語言來寫,而算法很隨意。算法是一系列解決問題的清晰指令,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。算法常常含有重復的步驟和一些邏輯判斷。
舉例:輸入:n個數的一個序列(a1,a2,a3......,an).
輸出:輸入序列的一個排列(a1`,a2`,a3`,...,an`) 滿足 a1`<=a2`<=a3`<=...<=an`;
例如:給定輸入序列(31,41,59,26,41,58)排序算法將返回序列(26,31,41,41,58,59)作為輸出。這樣的輸入序列稱為排序問題的一個實例,一般來說,問題實例由計算該問題所必須的(滿足問題中陳述中加的各種約束)輸入組成。