適合各種程度讀者的 8 本資料結構和演算法書籍

在資料科學中,演算法和資料結構構成了資料收集的功能和儲存。雖然編碼和應用數學知識對於瞭解這些結構相當有助益,不過其實有許多書籍適合初學者閱讀。許多書籍著重於說明特定的結構來協助讀者進行學習,並且使用有效的範例和程式碼來證明該主題背後的理論。掌握資料科學基礎知識之後,下一步就是瞭解演算法。

本文將討論適合初級、中級和高級使用者技能程度的一系列演算法和結構書籍。

1.《Introduction to Algorithms》,作者:Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein

作者:Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein
網站:Amazon

《Introduction to Algorithms》提供演算法的全面性概述和指南。這是現代演算法的參考用百科全書,內容多達 1000 多頁,涵蓋理論與實務之間的所有層面。

這本書相當實用,書中透過圖表和證明提出問題,應用演算法,以及分析結果背後的理論。本書假設您對數學和資料結構有一定程度的瞭解,但對於等不及掌握這些知識的讀者,本書也提供許多內容來供其品嚐。

2.《Algorithms Unlocked》,作者:Thomas H. Cormen

作者:Thomas H. Cormen
網站:Amazon

《Algorithms Unlocked》的作者 Thomas Cormen 試圖揭開技術的神秘面紗,並揭露技術內部運作的秘密。我們對於許多事務習以為常,例如自動 GPS 路線或網際網路加密,全都採用應用演算法進行運作。

這本書解說電腦如何使用演算法來解決問題,並建立我們在日常生活中看見的許多技術工作。書中詳細介紹電腦演算法的確切細節,並教導讀者如何使用演算法執行簡單的工作,例如搜尋、排序和繪製圖表。對於有興趣想瞭解演算法在現代世界中如何發揮作用的任何人,這本書是不錯的資源。

3.《The Algorithm Design Manual》,作者:Steven S. Skiena

作者:Steven S. Skiena
網站:Amazon

《The Algorithm Design Manual》介紹如何從無到有建立自己的演算法。本書不僅涵蓋演算法設計背後的理論,而且也使用範例和實際練習來提供參考點。Skiena 介紹了「虛擬程式碼」,能夠輕鬆轉換到演算法中使用的各種不同程式設計語言。作者介紹了各種現代演算法,例如圖論、計算幾何和多線程演算法。

這本書分為兩個部分:技術和資源。第一部分是「技術」,引導讀者如何設計和分析演算法。第二部分是「資源」,為讀者提供包含 75 種最常見演算法問題的大量參考資源,並提供根據需要使用 C/C++ 和 Java 進行實作的方式。

4.《Data Structures and Algorithms Made Easy: Data Structures and Algorithmic Puzzles》,作者:Narasimha Karumanchi

作者:Narasimha Karumanchi
網站:Amazon

這本書的功用比較像是幫助您針對即將接受檢驗的領域 (例如面試、考試或證書) 複習相關內容,並討論常見的演算法問題及其解決方案。書中涵蓋資料結構的基礎知識和演算法的運作原理,並指導讀者如何編寫自己的演算法。

讀者必須熟悉數學和 C/C++ 程式碼,才能完成本書所提供的練習題。這本書有 400 多頁,分為 20 章,實際上是解決演算法問題的工作手冊。

5.《Grokking Algorithms: An illustrated guide for programmers and other curious people》,作者:Aditya Bhargava

作者:Aditya Bhargava
網站:Amazon

這是一本很容易閱讀的書,可供程式設計人員深入瞭解演算法以及如何解決可能遇到的常見問題。這本書涵蓋一些更常見且實用的演算法,例如排序和搜尋,並逐步解決有關資料壓縮和人工智慧的難題。

演算法的解說圖文並茂,相當適合透過視覺化的方式瞭解內容的讀者,並逐步解說每個程序。每個範例都包含 Python 的程式碼範例。這本書不適合完全初學者,不過可以為熟悉程式設計的人提供引導或做為複習內容。

6.《Algorithms》,作者:Robert Sedgewick 和 Kevin Wayne

作者:Robert Sedgewick 和 Kevin Wayne
網站:Amazon

《Algorithms》書名雖然簡單,但內容卻不簡單,可不要被書名騙了,其中的內容可是很有深度。這本詳盡的教科書詳盡介紹演算法和資料結構,是全面性的學術資源。書中甚至包括線上入口網站並提供完整有效的程式碼。

這本書涵蓋各種資料類型以及如何對這些資料進行排序和分析,而且重點介紹對於搜尋、排序和程序處理相當實用的重要演算法。為了讓讀者獲得實際的操作經驗,這本書還有輔助網站,其中提供練習、測試資料、視覺化內容和完整的 Java 程式碼。由於這本書的學術性質高,可以用在大學中,因此對於進入該學科的人而言,本書可以做為教科書之用。

7.《Advanced Data Structures》,作者:Peter Brass

作者:Peter Brass
網站:Amazon

《Advanced Data Structures》強調資料結構在演算法和優化搜尋中的重要性。閱讀這本書需要有很大的勇氣,因為本書是專為相當於研究生程度的進階讀者和資料科學從業人員所寫,其中深入探討資料分析之中的複雜資料儲存。

這本書詳細介紹不同的資料結構和變體,而且討論堆疊、佇列、雜湊表、搜尋樹等內容,甚至還包括更專業的結構,例如線段樹。為了支援操作,書中的章節包含 C 語言的有效程式碼範例與參考。這是關於複雜資料儲存的教科書,因此內容非常全面且詳細。

8.《Automate This: How Algorithms Came To Rule Our World》,作者:Christopher Steiner

作者:Christopher Steiner
網站:Chris Steiner | Amazon

這本書並不是像大多數演算法書籍一般的參考書籍或入門手冊,而是以歷史的角度來看待演算法如何在我們日常生活中變得越來越重要,最終讓以前只能以手動完成的技術轉為自動化。

現在,演算法可協助我們駕駛汽車、增強娛樂媒體並預測人類行為。這本書比較像是評論和解說,將深奧難懂的演算法放在容易理解的文化背景中加以說明。

免責聲明:Tableau 不為本文列出的任何產品或其中的觀點提供官方背書,因此本頁面並未加入任何關聯連結計劃。本文僅供教育目的,我們提供上述關於產品和出版物的資訊,目的在於協助讀者可以自行做出明智的決定。