★日本超人氣演算法學習書
★逾50萬次下載量,「Apple年度最佳APP」書籍化!
★隨書附贈獨家贈品「圖形搜尋和排序圖解記憶表」
★★ 讀再多文字解說都看不懂?沒關係,全部畫給你看,一次弄懂演算法到底是什麼!★★
●直觀理解,從基礎開始學習,一用就上手的演算法專書!
●全圖像化step by step,完整拆解制霸AI時代的演算法精髓!
●詳解演算法的奧妙、運作效率、優缺點,活化思維,做出最佳決斷!
█ 演算法時代來了!
現今我們的世界已離不開演算法,從線上搜尋、社群交友、法院判案、醫學診斷、金融運作、大腦決策到人工智慧的未來,越了解演算法,越可能掌控權力,成為時代的贏家。有些演算法對我們有益、有些有用,有些則可能使我們陷入大麻煩,但我們對這些演算法所知極少。
不管用哪種程式語言編寫程式,演算法都是不可或缺的,不過如果認為只有學電腦的人才要了解演算法,那就太可惜了。演算法其實是一連串解決問題的邏輯步驟,只要熟悉這些步驟和運用方式,每個人都能設計自己的演算法並應用於各種不同領域。學習演算法正是建構嚴謹思維和幫助做出最佳判斷的訓練。
█ 演算法的第一本書,從基礎開始學習!
演算法是用以執行計算或完成作業的程序,可以想像成料理食譜,如果做出某種料理的步驟是食譜,那麼用電腦解出特定問題的步驟就是演算法了。然而,食譜與演算法的決定性差異,在於演算法非常嚴謹。相較於食譜有很多概略的描述,演算法的所有步驟都用數學方式表現,沒有模糊地帶。
本書蒐羅介紹26種基本的演算法和7種資料結構,貨真價實完全圖解。每一個步驟都以圖片和文字詳細說明,拆解具體演算過程,逐步建立邏輯概念,輕鬆進入演算法的世界。
書中解說的演算法範疇包括「排序」、「陣列搜尋」、「圖形搜尋」、「安全性演算法」、「聚類」,以及「網頁排名」等各種廣泛使用的基礎演算法。不用艱澀的專有名詞,步步口語分解,完全沒有概念的人也能漸進學習。
作者簡介:
石田保輝
住在東京的自由業工程師。2011年京都大學研究所碩士課程結業。曾任職於幾家新創公司,後獨立成為自由業。2016年製作上架以工程師為對象的學習APP「アルゴリズム図鑑」。上架後不到一年即達成全世界50萬次下載,獲選「Apple 2016年度最佳APP」。
宮崎修一
京都大學學術信息媒體中心(学術情報メディアセンター)副教授。1998年九州大學研究所博士課程結業,博士(工學)。1998年起任京都大學研究所情報學研究科助理教授。2002年開始擔任現職。從事演算法和計算複雜性理論的研究,近來鑽研近似演算法和線上演算法。主要著作為《圖論入門:基礎與演算法》(グラフ理論入門 ~基本とアルゴリズム~,2015年,森北出版)。
譯者簡介:
陳彩華
成功大學材料工程系畢,赴日就讀國貿,歷經業務、施工現場、產業廢棄物處理等工作,目前在日本主要從事電腦與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*
【第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 河內塔
前言
關於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 ...
改變世界的九大演算法:讓今日電腦無所不能的最強概念 Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today’s Computers 作者: 約翰.麥考米克 John MacCormick 演算法圖鑑:26種演算法 + 7種資料結構,人工智慧、數據分析、邏輯思考的原理和應用全圖解 アルゴリズム図鑑:絵で見てわかる 26のアルゴリズム 作者: 石田保輝, 宮崎修一 這兩本書是比較淺顯,前一本是美國專業資訊科學專業教授撰寫,介紹特別以文字說明多,以實用性取向所選的九個演算法,有搜尋引擎的索引(search engine indexing)、網頁排序(page rank)、公鑰加密(public-key cryptography)、錯誤更正碼(error-correcting codes)、模式辨識(pattern recognition,如手寫辨識、聲音辨識、人臉辨識等等)、資料壓縮(data compression)、資料庫(databases)、數位簽章(digital signature),最後是討論演算法的極限,如果存在的話將會很了不起的偉大。 其他項目不說明,最後一個進入哲學層次,考驗程式的判斷力,也就是程式自己可以可以給自己計算,有點類似羅素詭辯,給每一個不刮鬍子的理髮師,那他給不給自己刮鬍子。作者換了一個方法:程式會對輸出答案為否的程式,輸出一個是。那如果這個程式的輸入是本身,那們輸出的答案是什麼?這個問題就在是否可以找到一個程式可以去找當機的程式?演算法做不到。計算的極限! 第二本書是圖鑑,或是另一種翻譯是圖說,書名只有"演算法圖鑑:26種演算法",其他冗長的說明文字應該是譯者追加。作者資訊專業學程人士及教職,,利用簡單APP教導大家如何認識演算法。 本書相當簡單,全是圖解說明,瞭解演算法,直觀理解,從基礎開始學習,全像化按部就班step by step,說明每一個演算法實際演算過程,如果修習過資料結構,當可快速瀏覽,資料結構一書中,貯列,堆疊,陣列先奠基,而後不同的收尋,排序策略,各演算法執行效率、優缺點,接者與前一本書部分內容類似,加密過程,數位簽章及憑證。相輔相成的學習。回憶起遞迴recursive,重複自己的過程。程式的大跳躍。 次之是分群,與前一本書的圖像辨識有相關連。最後是介紹重要演算法,出現了谷歌揚名的網頁排序演算法。輾轉相除法與質數判定法,這個剛好都與加密中大質數相乘有關,環環互扣,演算法看似無用之學,卻與民生息息相關。 書本的廣告文案說明:世界已離不開演算法,從線上搜尋、社群交友、法院判案、醫學診斷、金融運作、大腦決策到人工智慧的未來,演算法其實是一連串解決問題的邏輯步驟。學習演算法正是建構嚴謹思維和幫助做出最佳判斷的訓練。