你一定能看懂的算法基礎書《算法圖解》

  • 你一定能看懂的算法基礎書
  • 代碼示例基於Python
  • 400多個示意圖,生動介紹算法執行過程
  • 展示不同算法在性能方面的優缺點
  • 教會你用常見算法解決每天面臨的實際編程問題

圖片描述

本書易於理解,沒有大跨度的思維跳躍,每次引入新概念時,都立即進行詮釋,或者指出將在什麼地方進行詮釋。核心概念都通過練習和反覆詮釋進行強化,以便你檢驗假設,跟上步伐。

書中使用示例來幫助理解。我的目標是讓你輕鬆地理解這些概念,而不是讓正文充

閱讀路線圖

本書前三章將幫助你打好基礎。

第1章:你將學習第一種實用算法——二分查找;還將學習使用大O表示法分析算法的速度。本書從始至終都將使用大O表示法來分析算法的速度。

第2章:你將學習兩種基本的數據結構——數組和鏈表。這兩種數據結構貫穿本書,它們還被用來創建更高級的數據結構,如第5章介紹的散列表。

第3章:你將學習遞歸,一種被衆多算法(如第4章介紹的快速排序)採用的實用技巧。

根據我的經驗,大O表示法和遞歸對初學者來說頗具挑戰性,因此介紹這些內容時我放慢了腳步,花費的篇幅也較長。

餘下的篇幅將介紹應用廣泛的算法。

問題解決技巧:將在第4、8和9章介紹。遇到問題時,如果不確定該如何高效地解決,可嘗試分而治之(第4章)或動態規劃(第9章);如果認識到根本就沒有高效的解決方案,可轉而使用貪婪算法(第8章)來得到近似答案。

散列表:將在第5章介紹。散列表是一種很有用的數據結構,由鍵值對組成,如人名和電子郵件地址或者用戶名和密碼。散列表的用途之大,再怎麼強調都不過分。每當我需要解決問題時,首先想到的兩種方法是:可以使用散列表嗎?可以使用圖來建立模型嗎?

圖算法:將在第6、7章介紹。圖是一種模擬網絡的方法,這種網絡包括人際關係網、公路網、神經元網絡或者任何一組連接。廣度優先搜索(第6章)和狄克斯特拉算法(第7章)計算網絡中兩點之間的最短距離,可用來計算兩人之間的分隔度或前往目的地的最短路徑。

K最近鄰算法(KNN):將在第10章介紹。這是一種簡單的機器學習算法,可用於創建推薦系統、OCR引擎、預測股價或其他值(如“我們認爲Adit會給這部電影打4星”)的系統,以及對物件進行分類(如“這個字母是Q”)。

接下來如何做:第11章概述了適合你進一步學習的10種算法。

各種符號。我還認爲,如果能夠回憶起熟悉的情形,學習效果將達到最佳,而示例有助於喚醒記憶。因此,如果你要記住數組和鏈表(第2章)之間的差別,只要想想在電影院找座位就坐的情形。另外,不怕你說我囉嗦,我是視覺型學習者,因此本書包含大量的圖示。

本書內容是精挑細選的。沒必要在一本書中介紹所有的排序算法,不然還要維基百科和可汗學院做什麼。書中介紹的所有算法都非常實用,對我從事的軟件工程師的工作大有幫助,還可爲閱讀更復雜的主題打下堅實的基礎。祝你閱讀愉快!

目錄

第 1 章 算法簡介
第 2 章 選擇排序
第 3 章 遞歸
第 4 章 快速排序
第 5 章 散列表
第 6 章 廣度優先搜索
第 7 章 狄克斯特拉算法
第 8 章 貪婪算法
第 9 章 動態規劃
第 10 章 K最近鄰算法
第 11 章 接下來如何做
練習答案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章