啊哈!圖解演算法必學基礎

啊哈磊 著、H&C 譯

買這商品的人也買了...

相關主題

商品描述

<內容特色>

啊哈!
一本可以開開心心閱讀的圖解演算法參考書!
一本可以快快樂樂看懂的圖解演算法自學書!

現在開始,自學演算法變得容易輕鬆!

這是一本充滿智慧和趣味的演算法入門書。沒有枯燥的描述,沒有難懂的公式,一切以實際應用為出發點,透過幽默的說明與講解,並搭配可愛插圖和易懂的圖解來介紹演算法。就像是在閱讀一個個輕鬆的小故事或是在玩一把趣味解謎遊戲,在輕鬆愉悅中便掌握演算法精髓,感受演算法之美。

本書介紹了基礎必學的資料結構和演算法,其中資料結構有堆疊、佇列、鏈結串列、樹、並查集、堆積和圖等;介紹的演算法有排序、列舉、深度和廣度優先搜尋、圖的走訪,當然還有圖論中不可以缺少的四種最短路徑演算法、兩種最小生成樹演算法、割點與割邊演算法、二分圖的最大匹配演算法等,閱讀及理解完本書後即可掌握程式設計的根基。

<作者介紹>

紀磊
網名啊哈磊。
曾在中科院玩過單晶片。武漢大學歷史上第一位以本科生身份加入MSRA(微軟亞洲研究院)的小夥伴,在機器學習組從事搜尋引擎方面的研究。

‧發表國際會議論文一篇(IEEE)
‧全國青少年資訊學奧林匹克金牌教練
‧超萌超簡潔的C語言編譯器——“啊哈C編譯器”作者
2013年,我的第一部著作,有趣的程式設計科普書《啊哈C!》出版。

網址:www.ahalei.com
微博:weibo.com/ahalei

非常喜歡小朋友,每天都過得非常開心。
至於為什麼叫“啊哈磊”,因為我覺得這是一個很喜慶的名字。

<序>

我想寫一本通俗易懂的演算法書很久了,因為對於多數人而言,「演算法」給他的第一印象就是很難懂,其實我也是這樣。還記得我第一次學習圖論的「割點割邊」演算法時,看過不下於四五本書,其中不乏一些演算法經典書籍,還在網路上找了一堆材料,才勉強將其看懂並實作成程式碼。其實這個演算法並不難,核心程式碼不超過20行,但是很多演算法書都是草草敘述,不同的書籍列出的參考程式碼也是五花八門,有的甚至都不給你程式碼範例,這大幅增加了學習的難度。

我是花了整整一個晚上才搞定的,當然這其中不排除智商因素。第二印象就是演算法是枯燥無趣的,並且好像沒什麼作用。其實在我們的日常生活之中到處都可見到演算法的影子,只不過它通常隱匿在事物的背後,不太容易被發現。但是它每天都在默默地為我們服務著。在本書中我將帶你一步步揭開演算法的奧秘,帶它走近你的身邊。

由於演算法的內容確實是太多了,要想全部寫清楚恐怕幾本書都不夠,本書將介紹一些最常用的演算法。此外演算法的實作通常需要依附一些資料結構,因此在必要的時候對於需要用到的資料結構我也會進行講解。本書中談到的資料結構有堆疊、佇列、樹、並查集、堆積和圖等;演算法有各種排序、列舉、深度和廣度優先搜索、圖上的走訪,當然還有圖論中不可以缺少的四種最短路徑演算法、兩種最小生成樹演算法、割點與割邊演算法、二分圖的最大匹配演算法等。

雖然我不敢保證我寫的演算法你一定可以看懂(但憑著一股強大的自信,我認為初中以上程度的應該沒問題^_^),但我會以一個故事或者一個你在生活中可能遇到的問題開始對一個演算法進行講解,並儘量用通俗易懂的語言配合有趣的圖解,讓你在閱讀本書的時候更像是在品讀一篇篇輕鬆的短篇小說或是在玩一把趣味解謎遊戲,在輕鬆愉悅中掌握演算法精髓,感受演算法之美。

<章節目錄>

第 1 章 一大波數字正在靠近 - 排序
最快最簡單的排序 - 桶子排序
鄰居好說話 - 氣泡排序
最常用的排序 - 快速排序
小哼買書

第 2 章 堆疊、佇列、鏈結串列
解密 QQ 號 - 佇列
解密迴文 - 堆疊
紙牌遊戲 - 小貓釣魚
鏈結串列
模擬鏈結串列

第 3 章 列舉!很暴力
天公伯啊!奧林匹克數學題
炸彈人
火柴棒等式
數的全排列

第 4 章 萬能的搜尋
不撞南牆不回頭 - 深度優先搜尋
解救小哈
層層遞進 - 廣度優先搜尋
再解炸彈人
寶島探險
水管工遊戲

第 5 章 圖的走訪
深度和廣度優先究竟是什麼
城市地圖 - 圖的深度優先走訪
最少轉機 - 圖的廣度優先走訪

第 6 章 最短路徑
只有五行的演算法 - Floyd-Warshall
Dijkstra 演算法 - 透過邊實作鬆弛
Bellman-Ford - 解決負權邊
Bellman-Ford 的佇列優化
最短路徑演算法對比分析

第 7 章 神奇的樹
開啟「樹」之旅
二元樹
堆積 - 神奇的優先佇列
擒賊先擒王 - 並查集

第 8 章 更多精彩演算法
鏢局運鏢 - 圖的最小生成樹
再談最小生成樹
重要城市 - 圖的割點
關鍵道路 - 圖的割邊
我要做月老 - 二分圖最大匹配

第 9 章 還能更好嗎 - 微軟亞洲研究院面試