在現代的社會中,科技與網路已經是人類生活中不可或缺的一部分了。隨著科技的進步,Facebook、Amazon、Appple這些科技公司與科技產品也成為新興產業的龍頭。 當我們在滑FB或在Youtube上看影片時,總是很常看到演算法這個名詞,到底甚麼是演算法呢?
以學術性的說法來說,在數學以及電腦科學領域,演算法就是一個被定義好,計算機(電腦)可執行之指示的有限步驟或次序。 做為一個有效的方法,它包含了一系列的步驟與指令,並可以在有效的時間與空間內清楚的表現出來。 白話文來說,當你今天遇到一個數學問題,你會去思考這個問題該怎麼解決,並且運用數學公式把他解出來,在這個過程中,我們所用的公式就可以稱他為演算法。
再用個更簡單的例子舉例好了,今天我想吃一顆荷包蛋,那「如何把蛋做成荷包蛋」就變成我要解決的問題,我需要的步驟為
這些步驟就可以視為「如何把蛋做成荷包蛋」這個問題的演算法了。
圖/應對燈泡不亮的簡單演算法流程圖(圖片來源:維基百科)
演算法的概念是不是比想像中簡單呢?
核心內容
演算法的核心是建立問題之抽象的模型和明確解決的目標,可以根據具體的問題選擇不同的模式和方法完成演算法的設計。是一種解決問題的邏輯思考。而我們可以用文字、數字、圖片或符號來表示這些過程。
根據維基百科的定義,我們可以在高德納(Donald Ervin Knuth)先生的著作《電腦程式設計藝術》裡簡單概括出幾個演算法的特徵