算法神探

算法神探

《算法神探》 全稱《算法神探:一部谷歌首席工程師寫的CS小說》,原作者Jeremy Kubica(傑瑞米·庫比卡),中文版由啊哈磊、李嘉浩譯,電子工業出版社2017年1月出版

內容提要

《算法神探:一部谷歌首席工程師寫的CS小說》圍繞程式設計典型算法,精心編織了一個扣人心弦又趣味橫生的偵探緝兇故事。小說主人公運用高超的搜尋技巧和精深的算法知識,最終識破陰謀、緝拿元兇。其間,用二分搜尋搜查走私船、用搜尋樹跟蹤間諜、用深度優先搜尋逃離監獄、用優先佇列開鎖及用最佳優先搜尋追尋線索等跌宕起伏又富含算法精要的情節,讓讀者在愉悅的沉浸式體驗中快速提升境界,加深對程式世界的理解。《算法神探:一部谷歌首席工程師寫的CS小說》適合開發人員、編程愛好者和相關專業學生閱讀,也是少兒計算機科學啟蒙的絕佳讀物。

目錄

第一章 搜尋問題1

警局檔案室里的幾百份卷宗莫名失蹤,警長求助Frank,一位幾年前被自己親自辭退的前警官。

警用算法導論:搜尋問題6

第二章 窮舉搜尋尋線人7

搜尋第一站:Frank尋找“玻璃箱”Billy。作為一個靠分享信息過活的人,Billy這次竟然不願透露信息。

警用算法導論:窮舉搜尋13

第三章 罪犯農場裡的數組和索引15

搜尋第二站:Frank在Crannock農場偶遇Notation警官。雖然飽受Crannock夫婦的呵斥,Frank還是幸運地在數組車上找到一根珍貴的線頭。

警用算法導論:數組22

第四章 字元串及隱藏的信息23

Frank的回憶:初入警局時學習辨識Crannock農場的指示牌信息,這個指示牌被用來傳播各種加了密的非法活動訊息。

警用算法導論:字元串26

第五章 對一艘走私船的二分搜尋27

搜尋第三站:Frank和Notation來到Usb港,根據船隻的到港時間快速鎖定走私船Retry Loop號。

警用算法導論:二分搜尋Ⅰ33

第六章 二分搜尋尋線索37

Frank和Notation假裝食品監察員闖入Retry Loop號,快速翻看造假日誌尋找蛛絲馬跡。

警用算法導論:二分搜尋Ⅱ43

第七章 調整算法,大膽逃離45

他們被船上惡棍們拖上甲板,惡棍們的資歷是如此淺,以至於什麼信息都套不出來。

警用算法導論:改編你的二分搜尋法54

第八章 Socks:一個突如其來的插曲55

峰迴路轉,素不相識的小巫師Socks來營救,營救武器竟然是一桶桶的醃鰻魚。

第九章 倒退一步,繼續搜尋63

搜尋第四站:Mudwall港口,與村民們再三確認,最近沒有船到港,一無所獲地離開。

警用算法導論:倒退一步67

第十章 用廣度優先搜尋去開鎖69

搜尋第五站:Frayed Cable島,這裡有一座廢棄的監獄,Socks用咒語打開了監獄大門的鎖。

警用算法導論:廣度優先搜尋76

第十一章 廢棄監獄中的深度優先搜尋81

這座廢棄的監獄像迷宮一樣,不過在Frank的帶領下,他們真的在這裡找到了那些失蹤的卷宗!然而……

警用算法導論:深度優先搜尋89

第十二章 餐廳中的棧和佇列91

Frank的回憶:在警察學院的最初兩個月,Frank在餐廳打工,在一次偶然聊天中他意識到了數據結構的重要性。

警用算法導論:棧和佇列Ⅰ97

第十三章 用棧和佇列搜尋101

廢棄監獄裡房間的門突然關閉,卷宗被燃燒,重要線索被毀,他們落荒而逃。

警用算法導論:棧和佇列Ⅱ106

第十四章 分頭行動——並行搜尋109

返回Usb港的途中,Frank決定上岸後將Notation和Socks支開,因為他感覺自己無法相信任何人。

警用算法導論:並行算法115

第十五章 疊代加深可以救你的命117

Mavis的回憶:在自己還是學徒的一次出海中,雖然地圖丟失了,他們仍然用一種看似笨拙的方法在茫茫大海中找到了補給站。

警用算法導論:疊代加深125

第十六章 逆向索引:縮小搜尋範圍127

搜尋第六站:上岸後Frank拿著在Crannock農場找到的線頭去請教披風專家Cloaksworth 先生,確認這是一件被施了咒語的警察披風上的線頭。

警用算法導論:逆向索引132

第十七章 二叉搜尋樹陷阱135

謝過Cloaksworth先生後Frank走在街上,發現自己被探子跟蹤了。他轉而去追探子,被引入了下水道內建造的高高的二叉搜尋梯。

警用算法導論:二叉搜尋樹Ⅰ142

第十八章 建造二叉搜尋梯145

Frank一層層爬下梯子,然而爬到最後一層時他受傷了。探子放鐵蛇來圍攻,Frank艱難爬回地面。

警用算法導論:二叉搜尋樹Ⅱ150

第十九章 疑犯的二叉搜尋樹151

搜尋第七站:調查調職記錄,Frank讓Socks生成巨大的閃閃發光的魔法樹,但是沒能找到任何可疑之處。

警用算法導論:二叉搜尋樹Ⅲ160

第二十章 將疑犯加到搜尋樹中163

Frank決定帶著魔法樹去見警長,不過途中他們停在了警局記錄處,他們需要向魔法樹中增加一些節點。

警用算法導論:二叉搜尋樹Ⅳ169

第二十一章 二叉搜尋樹的屬性171

在增加節點的過程中,Socks犯了“小”錯誤,這引起了Frank的抱怨、咒罵和懷疑。

警用算法導論:二叉搜尋樹Ⅴ173

第二十二章 公文字典樹175

途中他們又來到警局檔案室,Frank得以在事故現場偵察,在這裡他找到了新的線索。

警用算法導論:trie樹179

第二十三章 最佳優先搜尋:偵探最值得信賴的工具183

Frank與警長交談,發現事態比想像中的更緊迫而嚴重:攻擊城堡的計畫、強大的魔法面具、危險的邪惡巫師聯盟……

警用算法導論:最佳優先搜尋190

第二十四章 用優先佇列進行調查193

Notation受到警長嚴厲批評,被停職,因為她一直在擅自調查不屬於自己的案件。

警用算法導論:優先佇列199

第二十五章 用優先佇列來解鎖201

Frank想回到自己的辦公室,卻發現再次被跟蹤了,他甩掉探子,巧妙地解開安全屋的密碼,躲進了安全屋。

警用算法導論:數據結構和搜尋205

第二十六章 啟發式搜尋207

搜尋第八站:安全屋裡的靜心反思。Frank反覆研究著找到的所有線索,忽然他開始懷疑之前的所有推斷。可靠的線索用盡了,模糊的線索也沒有了……

警用算法導論:啟發式搜尋210

第二十七章 警察學院中的“堆”213

Loop教授的回憶:警察學院基於教齡分配辦公室,95歲的Loop教授有長達70年的教齡,終於爭奪到了本應屬於自己的辦公室。

警用算法導論:堆219

第二十八章 搜尋難題223

搜尋第九站:Frank向Loop教授請教咒語知識。巫術犯罪學是一個危險的領域,而Loop教授卻一直能夠倖存下來。在這裡Frank終於釐清了線索。

警用算法導論:期末考試複習課229

第二十九章 搜尋終點站231

Frank與Notation來到警局的監獄,一舉抓獲戴著魔法面具、試圖解救自己首領的小巫師,沒錯,他就是一路同行的Socks。

結 語239

相關詞條

相關搜尋

熱門詞條

聯絡我們