首先,讓我們使用一個不太常見的比喻來解釋演算法的概念。我們將繼續以拉麵為例,製作一碗美味的拉麵需要經過多個步驟,例如製麵、熬湯、煮麵、製作叉燒和添加配料等。這些實際操作步驟可以被視為完成一碗美味拉麵的演算法。
與資料結構相比,演算法更關注解決問題的方法或流程。如果要用簡潔的語言來定義演算法,基本上可以說演算法是由有限步驟組成的一組指令,用於解決特定問題。
在資訊科學中,有一個常說的觀念是:程式設計 = 資料結構 + 演算法。這表明演算法的重要性不可忽視。
演算法的核心在於建立抽象問題模型並明確定義解決目標。然後,根據具體問題的需求,我們可以選擇不同的模式和方法來設計演算法。每種演算法通常都有其自己的設計流程或模板。然而,有些方法不被視為演算法,例如遞迴(Recursive),因為它通常被視為一種演算法設計方法,而不是具有特定實現模板的演算法。
有些演算法具有特定的名稱,而其他則不是。常見的排序演算法和搜尋演算法通常都有自己的名稱,例如氣泡排序、合併排序、二分搜尋等等。