文章

【書籍推薦】演算法圖鑑

【作者】
文_鍾婉華/旅讀
2022.05.30

「演算法」似乎已是生活日常、卻不像那麼熟悉的朋友。假如把時間推到更早,其實在開始使用計算機的年代,機器演算便隨著指間提按進入人類的生活,也從加減乘除延伸至更複雜的計算、判斷、儲存等步驟的電腦程式,概言之,演算法是計算機的基礎執行程序,以明確且有限有效的數值輸入至運算輸出的方式,將處理步驟寫成電腦能解讀執行的指令組合。

 

 

早期的機械運作較簡單,可以直擊或旋扭某物當指令,複雜的機器運作則需更細密的指令,由於電腦只認識二進位的數字,下指令給電腦即須用經過邏輯定義的數字序列。譬如原先只需前進即可的機器,之後因加上如轉向某方位、舉起標的物、放到目的地等有數量順序等條件的動作,便須有邏輯的步驟程式與機器溝通,如在多高的位置舉起從某定點算起橫向直向多少距離的標的物、放到從某定點算起橫向直向多少距離的目的地等等,這些具體算計多少大小先後的序列,都是演算法。

 

 

理解演算法需要基礎入門,工程師石田保輝將《アルゴリズム図鑑(演算法圖鑑)》做成行動應用程式(APP)販售給工程師同業,引起極大回響,並獲選為蘋果二○一六年度最佳行動應用程式,在此基礎下與京都大學學術信息媒體中心副教授宮崎修一合著《演算法圖鑑》,以豐富的圖解並增訂章節說明演算法,期能拋磚引玉,讓已習得基本演算法的讀者日後可更深入探索應用。

 

 

書中內容包括廿六種基礎演算法、七種資料結構,由淺入深,從點延伸成線、面到空間和時間的結構。如序章先解析選擇數的大小原理,這種小學生都能輕易解題的數學,乍看似乎不需思考,然而下指令給電腦的算式則複雜嚴謹得多:先從輸入的整數(n)中、找出最小的數、跟最左邊的數換位置,剩下的數再重複之前的動作,跟左二的數交換,以此反覆移動到結束,所有的數即能從小排到大。進入第一章,則說明列表、陣列、佇列、堆疊、二元搜尋樹等結構;第二章後加入排序的定義,如汽泡、選擇、插入、堆積、合併等;接著是線性及二元搜尋、圖形及深廣度優先的搜尋、安全性演算原理、群組的分類、並舉例其他演算法如輾轉相除、質數判定等,以圖解方式拆解演算過程,讓讀者逐步建立邏輯概念,並在熟知多樣結構後,可視情況選擇最適當的演算法。

 

 

【作者簡介】

石田保輝

住在東京的自由業工程師。2011年京都大學研究所碩士課程結業。曾任職於幾家新創公司,後獨立成為自由業。2016年製作上架以工程師為對象的學習APP「アルゴリズム図鑑」。上架後不到一年即達成全世界50萬次下載,獲選「Apple 2016年度最佳APP」。

 

 

宮崎修一

京都大學學術信息媒體中心(学術情報メディアセンター)副教授。1998年九州大學研究所博士課程結業,博士(工學)。1998年起任京都大學研究所情報學研究科助理教授。2002年開始擔任現職。從事演算法和計算複雜性理論的研究,近來鑽研近似演算法和線上演算法。主要著作為《圖論入門:基礎與演算法》(グラフ理論入門 ~基本とアルゴリズム~,2015年,森北出版)。

 

 

【資訊內文】

作者_石田保輝、宮崎修一

譯者_陳彩華

出版_臉譜出版

圖片版權_臉譜出版