無論你是計算機科學的學生還是業餘愛好者,本書都是能讓你在引人入勝的情節中學習算法知識的完美選擇。Frank是一位被解雇的前探員,老練的私傢偵探和搜索專傢。追尋他的足跡,你會學到:
◎*佳優先搜索、深度優先搜索、迭代加深、並行算法、二分搜索等算法背後的原理
◎字符串、數組、棧和隊列等基本計算機科學概念
◎如何修改搜索算法以適應不同的數據結構
◎如何在特定情況下選擇*適閤的算法,以及何時應該使用基於常識的啓發式算法
本書圍繞程序設計典型算法,精心編織瞭一個扣人心弦又趣味橫生的偵探緝凶故事。小說主人公運用高超的搜索技巧和精深的算法知識,*終識破陰謀、緝拿元凶。其間,用二分搜索搜查走私船、用搜索樹跟蹤間諜、用深度優先搜索逃離監獄、用優先隊列開鎖及用*佳優先搜索追尋綫索等跌宕起伏又富含算法精要的情節,讓讀者在愉悅的沉浸式體驗中快速提升境界,加深對程序世界的理解。本書適閤開發人員、編程愛好者和相關專業學生閱讀,也是少兒計算機科學啓濛的**讀物。
Jeremy Kubica 在 Google 任職首席工程師,著力於機器學習和算法方嚮。他擁有康奈爾大學的計算機科學本科學位和卡耐基梅隆大學的機器人專業博士學位。在研究生期間,他設計瞭一個算法,可以探測對地球有威脅的小行星(當然,還尚未能阻止那些小行星)。Kubica 同時也是著名博客Computational Fairy Tales的作者。
關於技術審校者
Heidi Newton 擁有新西蘭坎特伯雷大學計算機科學專業的學士學位,以及新西蘭惠靈頓維多利亞大學計算機科學專業的碩士學位。她目前就職於坎特伯雷大學計算機專業的代碼復仇者研究小組,並在業餘時間進行相關輔導和谘詢工作。她目前緻力於改善關於計算機科學和編程的教學資源。
譯者介紹
啊哈磊:原名紀磊,畢業於武漢大學。曾在微軟亞洲研究院研發“爬蟲”,全國青少年信息學奧林匹剋金牌教練。著有《啊哈C語言!邏輯的挑戰》和《啊哈!算法》係列編程科普叢書,並被引進至港澳颱。
李嘉浩:曾獲全國青少年信息學奧林匹剋競賽金牌,國傢集訓隊*小選手。現就讀於美國麻省理工學院計算機科學及音樂雙專業。喜歡行走在科學與藝術的交接點。
第一章 搜索問題 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
譯 者 序
算法!Algorithms !
咳咳!很多人一聽到這個詞,估計腦袋就要炸瞭:一定又是復雜極瞭的東西,看來此書必定翻不過第一節,就要睡著瞭。
沒錯,很多算法書雖然寫得很精妙,但憑我這種智商一口氣最多隻能看5到10 頁,就會乖乖滾迴去睡覺瞭。不少讀者說《啊哈!算法》一口氣能讀100頁,這已經是極限。那麼,這本《算法神探:一部榖歌首席工程師寫的CS小說》或許可以一口氣讀完,沒錯,是讀完!
整本書巧妙地將算法穿插入一場離奇的盜竊案的偵破中。沒有一行代碼和公式,取而代之是一場又一場鮮活的破案遊戲,帶你遊走在各個犯罪現場,讓你身臨其境地觀察我們的主人公是如何使用算法搜尋綫索並逐步揭開事實真相的。雖然這本書並不是教科書,但通過這種輕鬆的閱讀學習,你可以對算法的本質有大緻瞭解。在酣暢淋灕地讀完本書之後,再去翻閱其他算法書籍,你會驚奇地發現,自己竟然可以看懂那些枯燥苦澀的代碼和公式瞭。
其實,在閱讀本書之前,你甚至不需要掌握任何編程的基礎知識。這並不影響你閱讀全書,並以輕鬆有趣的方式瞭解這些算法——就是這樣一本神奇的算法書。
然而,時間緊張加之我們翻譯水平有限,請恕不能將原作者的精巧行文完美地展現在你麵前。譯文中難免有不足和疏漏之處,還請不吝批評指正。翻譯期間得到瞭不少朋友的幫助,在此嚮他們錶示感謝。特彆感謝我的摯友丁廣浩,他目前就職於美國的Amazon。在 On-Call Duty 的日子裏麵,他還抽時間幫我解答疑問,甚是感激。另外,也非常感謝武漢外國語學校的張競文同學和浙江大學的陳泓宇同學。
好嘞,故事要開始瞭,讓我們跟隨Frank探長和Notation警官一起走入這場奇妙之旅。
啊哈磊
ahalei.com
關於作者
Jeremy Kubica 在 Google 任職首席工程師,著力於機器學習和算法方嚮。他擁有康奈爾大學的計算機科學本科學位和卡耐基梅隆大學的機器人專業博士學位。在研究生期間,他設計瞭一個算法,可以探測對地球有威脅的小行星(當然,還尚未能阻止那些小行星)。Kubica 同時也是著名博客Computational Fairy Tales的作者。
關於技術審校者
Heidi Newton 擁有新西蘭坎特伯雷大學計算機科學專業的學士學位,以及新西蘭惠靈頓維多利亞大學計算機科學專業的碩士學位。她目前就職於坎特伯雷大學計算機專業的代碼復仇者研究小組,並在業餘時間進行相關輔導和谘詢工作。她目前緻力於改善關於計算機科學和編程的教學資源。
緻 謝
我要對所有支持本書和為本書做齣瞭貢獻的人們深錶感謝。
首先,我想嚮 No Starch 齣版社團隊的所有人緻謝。特彆是 Liz Chadwick 和Riley Hoffman 在本書的編輯過程中給予我的幫助、指導和建議。Liz 高質量的建議使得本書的故事內容保持瞭流暢清晰。同時,我也很感謝她提齣的將本書涉及的專業內容以講義形式呈現的建議。感謝 Bill Pollock 和 Tyler Ortman 的支持,特彆感謝 Bill 為本書書名提供的建議。也感謝 Carlos Bueno 嚮我介紹瞭 No Starch 齣版社。
感謝Miran Lipovacˇa為本書提供瞭精美的插圖。這些插圖很好地刻畫瞭本書的人物特色和故事情節。
感謝 Heidi Newton從專業角度進行的細緻深度的審校。她的審閱很大程度上確保瞭本書所涵蓋的內容和概念能夠以準確易懂的方式呈現齣來。非常感謝她針對書中的晦澀難懂處給予的提醒。
同時也感謝所有閱讀過本書早期手稿並提供瞭寶貴建議的人:John Bull、Mike Hochberg、Edith Kubica、Regan Lee和 Kristen “Kit” Subbs 博士。感謝 Ilana Schwarcz 對於本書早期手稿的編輯,以及對本書在行文上的建議和幫助。
最後,我想由衷地感謝我的傢人,特彆是父母在我孩童時期對於我的計算機興趣的支持,以及對我寫作本書給予的鼓勵。
導 讀
本書關注的是計算機思維和搜索算法。這些故事介紹並闡釋瞭較高層次的計算機思想,探索瞭它們背後的動機及其在非計算機領域中的應用。本書並不奢望對算法進行非常詳盡而全麵的描述,書中的故事也不是為瞭替代計算機科學中那些堅實而嚴謹的技術性描述。相反,它們的作用更像是插圖:對整體思想進行補充,幫助你更好地理解算法。
本書介紹瞭一係列的計算方法,它們大緻上屬於搜索算法的範疇。書中每一章首先通過一個故事來講解算法的大緻思想,隨後再用講義的形式來對算法進行更為技術性的解釋。讀者可以完全跳過這些技術講解部分,同時又不會錯過任何一個精彩的故事。
本書假定你已經對一些基本的計算機科學思想有所瞭解,但你並不需要掌握任何一門編程語言。本書中的算法適用於各種編程語言和不同領域的問題。
拿到《算法神探》這本宣傳冊,我就被它的名字所吸引,充滿瞭科技感和神秘感。榖歌首席工程師寫CS小說,這組閤本身就足夠讓人好奇瞭。我一直覺得,那些能夠將嚴謹的技術原理,用一種生動有趣的方式呈現齣來的作者,是最有纔華的。我非常期待在故事中,能夠看到那些復雜的算法是如何被巧妙地運用,成為破解謎題的關鍵,或者成為推動角色成長的催化劑。我想象著,書中會充滿那些令人腦洞大開的場景,那些關於數據分析、邏輯推理、甚至是人工智能的有趣設定。而且,我個人對科技與人文的融閤一直都很感興趣,相信這位作者一定能在這方麵帶來驚喜,通過算法的視角,摺射齣人性的復雜,社會的變遷,以及未來的可能性。這本書對我來說,不僅僅是關於算法,更是關於智慧、關於創新、關於探索未知的勇氣。我迫不及待地想翻開它,感受一場由代碼和故事交織而成的精彩旅程。
評分《算法神探》這個名字,簡直就是一種魔力,把我牢牢地吸引住瞭。我一直對那些能夠將復雜技術與引人入勝的故事巧妙結閤的作品充滿好奇,而“榖歌首席工程師”的身份,更是為這本書披上瞭一層神秘而權威的光環。我非常期待,在這本書中,我能夠看到算法如何被賦予“生命”,成為解決謎團、推動情節發展的核心力量。我設想著,書中那些關於數據、關於模式識彆、關於預測分析的描寫,是如何被融入到一個跌宕起伏的故事情節中的,是會帶來一種全新的閱讀體驗,一種既燒腦又感人的故事。同時,我希望作者能夠通過這部作品,展現齣他對於科技發展、對於人工智能未來走嚮的獨特見解,甚至是對於社會問題的深刻反思。我相信,這本書不僅僅是一部娛樂作品,更是一扇窗,讓我們得以窺見科技巨頭們大腦深處的思考,以及他們對未來世界的憧憬與擔憂。我期待著,在這場由算法驅動的探險中,收獲智慧,激發思考,甚至重新定義我對“智能”的理解。
評分說實話,看到《算法神探》這個書名的時候,我腦子裏立刻浮現齣各種奇思妙想。榖歌首席工程師,這個標簽就足以讓我肅然起敬,想象著他如何將那些在矽榖日常工作的場景,那些關於數據分析、機器學習、人工智能的思考,巧妙地轉化為一段引人入勝的故事。我一直在尋找能夠拓展我思維邊界的書籍,而我堅信,這是一本能夠讓我看到不一樣的世界,不一樣的可能性的作品。我尤其期待,在故事中,那些抽象的算法概念,是如何被具象化,成為解決問題的關鍵,甚至是推動人物情感發展的催化劑。我希望能夠感受到那種“代碼即語言,算法即思維”的魅力,看到作者如何用文字描繪齣算法世界的獨特美學。同時,我也相信,作為一位經驗豐富的工程師,作者一定能在這個故事中融入他對技術倫理、對人工智能未來發展的深刻思考,這或許纔是這本書最令人期待的部分。這本書的吸引力,不僅在於它的技術背景,更在於它承諾的智慧與想象力,以及對我們所處時代的深刻洞察。
評分讀完《算法神探》的序言,我就被深深地震撼瞭。作者的那種宏大敘事和細膩筆觸的結閤,讓我立刻感受到這是一部不同尋常的作品。榖歌首席工程師的身份,為這本書增添瞭天然的權威性和深度,我感覺自己即將踏上一場由頂級技術大腦精心構築的思想冒險。我一直在尋找那種能夠挑戰我認知邊界,同時又充滿人文關懷的作品,而這本書似乎完美地契閤瞭我的期待。我特彆好奇,在作者構建的這個世界裏,算法究竟扮演瞭怎樣的角色?是工具,是角色,還是整個故事的靈魂?它如何影響人物的命運,又如何塑造故事的走嚮?我期待著那些充滿智慧的對話,那些關於數據、邏輯和概率的精妙設計。同時,我也相信,作者不會僅僅停留在技術層麵,他對人性的洞察,他對社會現象的思考,也一定會在故事中得到淋灕盡緻的展現。這本書的題目本身就充滿瞭張力,“神探”二字暗示著解謎和智慧,“算法”則代錶著現代科技的核心。我非常期待在字裏行間,看到技術與人文的完美融閤,看到邏輯與情感的交織碰撞,看到一個充滿想象力的未來,又或是對當下深刻的隱喻。
評分天呐,這本書簡直就是為我這種對代碼和故事都欲罷不能的讀者量身定做的!《算法神探》這個名字一開始就抓住瞭我的眼球,榖歌首席工程師的作品,這光環就已經足夠吸引人瞭。我一直都覺得,那些能把復雜的技術概念用一種引人入勝的方式呈現齣來的作者,簡直就是魔法師。這本書的封麵設計也非常有質感,給我一種既神秘又充滿智慧的預感。我非常期待在閱讀過程中,能夠體驗到算法在故事中扮演的“偵探”角色,它們如何抽絲剝繭,揭示真相,又或者成為推動情節發展的關鍵。我尤其好奇,作者是如何將那些嚴謹的計算機科學理論,巧妙地融入到一個引人入勝的故事情節中的,是不是會有那種“原來如此”的頓悟時刻,仿佛在讀一本技術版的《福爾摩斯》。而且,作為一名在科技行業工作的人,我總是在尋找能夠激發我思考和創新的作品,我相信這本書一定能給我帶來不一樣的啓發,甚至可能改變我看待算法和代碼的方式。這本書不僅僅是關於算法,更像是關於智慧、邏輯和解決問題的藝術。我迫不及待想要沉浸其中,感受算法的魅力,以及作者如何將這份魅力轉化為一部精彩的CS小說。
評分i我i我i可能父母佛佛法開發開放方麵的對咯打開
評分很薄的一本書,就當小孩入門吧,被啊哈磊這個三腳貓的小屁孩吸引來的
評分找到編程的快樂,欣賞到編程之美,享受思考的樂趣。感覺這本書裏麵的內容講得還不錯,推薦這本書。
評分6.18比較劃算,買來慢慢研究慢慢看。
評分很好很好很好很好很好
評分這本書還好吧,,包裝很不好,不太喜歡物流真快,重要是就沒有包裝,教材內容還好,50多的書,110多塊現在可以買三本值瞭,真心大愛,以後繼續支持此類的書,開心,java有救瞭,謝謝,真心謝謝京東的這次活動,買瞭400多塊錢的,值瞭,值瞭,哈哈哈,不喜歡這次的角角
評分搞活動時買的,屯起慢慢看
評分感覺不錯,價格也很公道,值的購買!
評分你不榖歌的首席工程師寫的cs真探小說,將算法融入到一個偵探小說當中,非常的有吸引力,學好算法不容置疑,同時也可以深刻的體現到首席工程師的功力,將算法寫得這麼淺顯易懂。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有