7.1 日常生活也能用得到的演算法

演算法是什麼?如何演算?

  如果說程式是和電腦溝通的語言,演算法,就是電腦解決問題的方法。當我們下達可行的處理步驟,電腦就會自動計算,並給出答案,從輸入到輸出結果的過程,就是演算的範圍。

輸入(input) → 演算(algorithm) → 輸出(output)

  舉例來說,當上班肚子餓時(輸入),我們依序確認時間點,以及適不適合出門(演算),再根據結果,決定要如何解決(輸出),這中間的起承轉合,就是演算法的過程。

演算法有五大特性,缺一不可

輸入(input):輸入資料、清楚定義。
輸出(output):輸出結果。
明確(definiteness):明確的指令。
有限(finiteness):有限步驟後必產生結果。
有效(effectiveness):步驟清楚可行。

  演算法有五項特性,必須完全滿足,才稱得上邏輯運算。除了必須具備輸入(零資料也視為輸入)與輸出,中間的演算過程還必須明確、有限與有效,確保能執行,且必然產生結果。

常用的演算法表示法

  演算法就是處理問題的方法,舉凡日常生活和程式皆會運用,常用的標示方法有兩種:

1. 流程圖表示法-圖解秒懂

  流程圖(flow chart)運用各種方塊、圖形、線條和箭頭,精簡表達演算的順序和步驟。透過圖案本身,就能表達出資料性質、處理方式等等,也就是「圖解」。常用的流程圖符號如下:

  運用流程圖符號,可以清楚標示演算法的過程。以上方的「上班肚子餓」圖例來說,菱形方框代表的是決策方框代表處理箭頭順序性標示,過程一目了然。

2. 文字敘述表示法-工程師愛用

  文字敘述法就是透過電腦虛擬碼(pseudo code),直接寫出其中過程,工程師電腦的「無字天書」就是程式虛擬碼。不過,虛擬碼其實類似邏輯強大又好懂的流程圖,只要破解代號,就能逐一解讀。

alert('Hello World');

  這個文字指令所代表的,就是跳出視窗(alert),並顯示文字(Hello World)。虛擬碼運用簡單的英文單字,對電腦下達指令,只要依規定的方式撰寫,就能達到演算、執行效果。

小結

  演算法的精隨,就在於清楚而邏輯的遊戲規則,讓對方接收明確指令。演算法之於工程師,就如同美味食材之於大廚師,若你能掌控自如,品嘗其中的美妙便利滋味,就算是成功換一顆工程師的邏輯腦了。

Last updated