內容簡介
★全球超過250萬人使用,「Apple年度最佳APP」書籍化!
★隨書附贈獨家贈品「七大主題演算法圖解記憶表」
★★ 讀再多文字解說都看不懂?沒關係,全部畫給你看,一次弄懂演算法到底是什麼!★★
●直觀理解,從基礎開始學習,一用就上手的演算法專書!
●全圖像化step by step,完整拆解制霸AI時代的演算法精髓!
●詳解演算法的奧妙、執行效率、優缺點,活化思維,做出最佳決斷!
【專業審訂】
成功大學資訊工程系特聘教授兼研發長 謝孫源
【專家學者好評推薦】
李忠謀 國立臺灣師範大學資訊工程系教授、國際資訊奧林匹亞競賽主席
趙坤茂 臺灣大學資訊工程學系教授
鄭國威 PanSci泛科學總編輯
【高中資訊社團好評推薦】
北一女中資訊研習社
台南女中資訊研究社
成功高中電子計算機研習社
高雄女中資訊社
新竹高中軟體研究社CSDC
█ 演算法時代來了!
現今我們的世界已離不開演算法,從線上搜尋、社群交友、法院判案、醫學診斷、金融運作、大腦決策到人工智慧的未來,越了解演算法,越可能掌控權力,成為時代的贏家。有些演算法對我們有益、有些有用,有些則可能使我們陷入大麻煩,但我們對這些演算法所知極少。
不管用哪種程式語言編寫程式,演算法都是不可或缺的,不過如果認為只有學電腦的人才要了解演算法,那就太可惜了。演算法其實是一連串解決問題的邏輯步驟,只要熟悉這些步驟和運用方式,每個人都能設計自己的演算法並應用於各種不同領域。學習演算法正是建構嚴謹思維和幫助做出最佳判斷的訓練。
█ 演算法的第一本書,從基礎開始學習!
演算法是用以執行計算或完成作業的程序,可以想像成料理食譜,如果做出某種料理的步驟是食譜,那麼用電腦解出特定問題的步驟就是演算法了。然而,食譜與演算法的決定性差異,在於演算法非常嚴謹。相較於食譜有很多概略的描述,演算法的所有步驟都用數學方式表現,沒有模糊地帶。
本書蒐羅介紹33種基本的演算法和7種資料結構,貨真價實完全圖解。每一個步驟都以圖片和文字詳細說明,拆解具體演算過程,逐步建立邏輯概念,輕鬆進入演算法的世界。
書中解說的演算法範疇包括「排序」、「陣列搜尋」、「圖形搜尋」、「安全性演算法」、「分群」,以及「網頁排名」等各種廣泛使用的基礎演算法。不用艱澀的專有名詞,步步口語分解,完全沒有概念的人也能漸進學習。
作者簡介
石田保輝
自由業工程師。2011年京都大學研究所碩士課程結業。曾任職於幾家新創公司,後獨立成為自由業。2016年製作上架以工程師為對象的學習APP「アルゴリズム図鑑」。上架後不到一年即達成全世界50萬次下載,獲選「Apple 2016年度最佳APP」。
宮崎修一
兵庫縣立大學資訊科學研究科教授。1998年九州大學大學院博士(工學)課程結業。1998年起擔任京都大學研究所情報學研究科助理,2002年升任助理教授,2007年為副教授,2022年從事現職。從事演算法和計算複雜性理論的研究,近來鑽研近似演算法和線上演算法。主要著作為《圖論入門:基礎與演算法》(グラフ理論入門~基本とアルゴリズム,2015年,森北出版)、《穩定匹配的數理與演算法:追求不出問題的分配》(安定マッチングの数理とアルゴリズム~トラブルのない配属を求めて~,2018年,現代数学社)、《演算法理論基礎》(アルゴリズム理論の基礎,2019年,森北出版)。
譯者簡介
陳彩華
成功大學材料工程系畢,赴日就讀國貿,歷經業務、施工現場、產業廢棄物處理等工作,目前在日本主要從事電腦與IT系統管理工作。
兼職譯者,業餘馬拉松跑者以及重度文字中毒者。譯有《圖解建築施工入門》、《樓梯,上上下下的好設計》、《圖解建築物理環境入門》等書。
目錄
前言
關於APP「アルゴリズム図鑑」(演算法圖鑑)
【序章 演算法的基礎】
0-1 何謂演算法?
0-2 執行時間的量測方法
【第1章 資料結構】
1-1 何謂資料結構?
1-2 列表
1-3 陣列
1-4 堆疊
1-5 佇列
1-6 雜湊表
1-7 堆積
1-8 二元搜尋樹
【第2章 排序】
2-1 何謂排序?
2-2 氣泡排序
2-3 選擇排序
2-4 插入排序
2-5 堆積排序
2-6 合併排序
2-7 快速排序
【第3章 陣列搜尋】
3-1 線性搜尋
3-2 二元搜尋
【第4章 圖形搜尋】
4-1 何謂圖形?
4-2 廣度優先搜尋
4-3 深度優先搜尋
4-4 貝爾曼―福特演算法
4-5 戴克斯特拉演算法
4-6 A*演算法
4-7克魯斯克爾演算法
4-8普林演算法
4-9匹配演算法
【第5章 安全性演算法】
5-1 安全性和演算法
5-2 加密的基礎
5-3 雜湊函數
5-4 共用金鑰密碼系統
5-5 公開金鑰密碼系統
5-6 混成密碼系統
5-7 迪菲―赫爾曼金鑰交換
5-8 訊息鑑別碼
5-9 數位簽章
5-10 數位憑證
【第6章 分群】
6-1 何謂分群?
6-2 k-means演算法
【第7章 數據壓縮】
7-1 數據壓縮與編碼
7-2 運行長度編碼
7-3 唯一可解編碼
7-4 瞬時編碼
7-5 霍夫曼編碼
【第8章 其他的演算法】
8-1 輾轉相除法
8-2 質數判定法
8-3 字串比對
8-4 字串尋找演算法
8-5 網頁排名
8-6 河內塔