Algorithmの本 (基本情報技術者試驗)

最近在準備日本的基本情報技術者試驗,裡面我覺得最難理解的就是演篹法(アルゴリズム)了吧!

所以參考了幾個youtuber他們推薦的演算法書單,我覺得有三本書我很推薦,以下三本書都很適合初學者。

第一本是

草野 俊彦の教養としてのプログラミング的思考

中文書 草野俊彦 [全圖解] 寫給所有人的運算思維入門

日文書 草野俊彦 教養としてのプログラミング的思考

這本書用很多簡單的生活例子教你寫程式。

例如,用製作咖哩飯的流程思維去思考寫程式時必須考慮到的點,並且繪製出流程圖,作者強調用圖來想程式,書中也有使用大量流程圖來講解邏輯思考,有流程圖的好處就是,當以後重讀自己的程式或是讀其他人的程式會更容易理解。

在我們要做反覆執行的處理(例如,機器人的行走路徑)也盡量用流程圖做確認,這樣才能幫我們清晰的思考,我認為這本書非常適合初學者,沒有用到太艱深的詞彙和觀念,但又可以幫你大概了解程式的運算方法,是一本清晰易懂的好書。

第二本是

中文書 石田保輝 演算法圖鑑:26種演算法 + 7種資料結構,人工智慧、數據分析、邏輯思考的原理和應用全圖解

日文書 石田保輝 アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

這一本介紹了26種演算法和7種資料結構,我覺得這本很棒的是,它的圖非常清晰易懂,尤其是第五章的密碼(暗號)部分,我在之前一直搞不懂加密過程,數位簽章這一部分,多虧了這一本書的圖解,讓我終於了解了,演算法的部分也是講的很清晰,圖也都是彩色的,一步驟一步驟的教你怎麼理解,非常具有易讀性,但讀了這一本書你再去做題目還是不夠的,在做演算法的題目時,一開始你會不知道要用書中的哪種算法,但沒關係,可以在回去翻翻這本書,更可以加深各種演算法的用法,這本書也在我的演算法必讀清單內。

第三本是

Aditya Bhargava Grokking Algorithms: An illustrated guide for programmers and other curious people

中文書 Aditya Bhargava 白話演算法!培養程式設計的邏輯思考

英文書 Aditya Bhargava Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People 

這一本書雖然沒有許多精美的圖片,但是用許多生活化的例子去講解演匴法,我印象中最有趣的也令我最印象深刻的是,書中用Facebook的朋友的朋友觀念去講解演算法,還有以物換物,用海報換cd換鋼琴,怎麼樣才能用最划算的方法(路徑)換到鋼琴,書中的例子都非常生動有趣。

我覺得最棒的一點書中還有程式範例,程式範例是最適合初學者的python,讓我可以了解演算法要怎麼在程式中去運作,書中的程式範例也都相當好理解,如果讀完上面兩本,並且想要瞭寫演算法運用在程式的人,那我很推這一本,如果有python的基礎那就更棒了!!

雖然我讀完上面三本了,但我在做演篹法題目時候還是很卡,我想我需要練習大量的題目,若是遇到不懂的概念可以再去翻翻書,加深一下印象,畢竟書只能是輔助,真正要熟悉演篹法,還是得花時間練習才行,不過如果是應付基本情報技術者試驗的話那應該讀完上面三本就夠了吧?!!