算法是解決問題的步驟。程序是對問題的具體代碼實現。算法和程序都是指令的有限序列,但是程序是算法,而算法不一定是程序。它們的主要區別在語言描述上和執行實踐上。在語言描述上,程序必須是規定的程序設計語言來寫,而算法和隨意。在執行時間上,算法所描述的步驟一定是有限的,而程序可以無限的執行下去。所以:程序=數據結構+算法。