算法是什麼

解題方案的準確而完整的描述。

算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表着用系統的方法描述解決問題的策略機制。也就是説,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個算法有缺陷,或不適合於某個問題,執行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間複雜度與時間複雜度來衡量。

算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化算法在內的一些算法,包含了一些隨機輸入。

在計算機編程的過程中,提到“算法”總是讓人覺得很深奧,很難理解到底什麼是算法?以及算法在程序設計過程中起到了什麼作用?其實在現實生活中我們經常會用“算法”的思想在解決一些問題,最常見的就是根據菜譜做菜。

菜譜記錄了做出各色各樣美味菜品的方法步驟。比如製作紅燒肉的菜譜,會把製作紅燒肉所必需的材料及用量都標註清楚,並且把烹製的過程、每一步需要的時間等都詳細記錄下來。任何人只要完全按照菜譜的方法和步驟去做,就一定能烹製出美味的紅燒肉。而“算法”就是能讓程序員編寫出可靠、高效的計算機程序的“菜譜”。

算法是什麼

遞推是序列計算機中的一種常用算法。它是按照一定的規律來計算序列中的每個項,通常是通過計算機前面的一些項來得出序列中的指定項的值。其思想是把一個複雜的龐大的計算過程轉化為簡單過程的多次重複,該算法利用了計算機速度快和不知疲倦的機器特點。

程序調用自身的編程技巧稱為遞歸(recursion)。一個過程或函數在其定義或説明中有直接或間接調用自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重複計算,大大地減少了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合。一般來説,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。