算法不難

林進威

  • 出版商: 清華大學
  • 出版日期: 2024-11-01
  • 定價: $479
  • 售價: 8.5$407
  • 語言: 簡體中文
  • ISBN: 7302675090
  • ISBN-13: 9787302675099
  • 下單後立即進貨 (約4週~6週)

  • 算法不難-preview-1
  • 算法不難-preview-2
  • 算法不難-preview-3
算法不難-preview-1

相關主題

商品描述

"《算法不難 》結合300多幅示意圖與70個算法示例(Python實現)直觀地講述36種常用經典算法的相關知識和9種經典算法思想,幫助讀者深入理解相關算法的原理與設計思想,為後續學習高級算法夯實基礎。 《算法不難 》分為5章。第1章介紹算法的基本概念以及如何正確使用和設計算法等相關知識;第2章介紹排序算法的基本思想以及冒泡排序、選擇排序、插入排序、希爾排序、歸並排序、快速排序、堆排序、計數排序、桶排序和基數排序十大排序算法;第3章首先介紹圖算法的基礎知識,然後介紹路徑搜索、廣度優先搜索、深度優先搜索、最小生成樹、單源最短路徑、**流等常用圖算法。第4章介紹字符串處理算法的相關知識,涵蓋字符串基礎知識以及字符串判斷、字符串匹配、字符串排序和字符串壓縮等。第5章介紹枚舉、遞推、遞歸、分治、貪心、動態規劃、迭代、回溯和模擬九大算法思想的原理與應用。 《算法不難 》內容豐富,講解循序漸進,適合有一定Python語言基礎的算法入門人員閱讀,也適合其他算法愛好者和程序設計從業人員閱讀,還可以作為高等院校相關專業算法課程的教材。 "

目錄大綱

第1章  算法基礎 1

1.1  什麽是算法 1

1.1.1  思維與邏輯 1

1.1.2  算法的特性 2

1.1.3  算法與數學 3

1.1.4  算法與電腦科學 4

1.2  正確使用與設計算法 5

1.2.1  從問題出發 5

1.2.2  永遠追求效率 6

1.2.3  算法評測與復雜度 7

1.3  本章小結 17

第2章  排序算法 18

2.1  排序算法的基本思想 18

2.1.1  什麽是排序 18

2.1.2  十大經典算法 19

2.1.3  排序算法的穩定性 19

2.1.4  比較排序與非比較排序 20

2.1.5  內部排序與外部排序 21

2.2  十大排序算法及其設計思想 22

2.2.1  冒泡排序 22

2.2.2  選擇排序 26

2.2.3  插入排序 31

2.2.4  希爾排序 39

2.2.5  歸並排序 43

2.2.6  快速排序 48

2.2.7  堆排序 55

2.2.8  計數排序 67

2.2.9  桶排序 72

2.2.10  基數排序 79

2.3  十大排序算法的性能分析與對比 86

2.3.1  十大排序算法的復雜度分析與對比 86

2.3.2  排序算法的穩定性 87

2.4  本章小結 89

第3章  圖算法 90

3.1  圖算法概述 90

3.1.1  圖的定義 90

3.1.2  圖的分類 91

3.1.3  圖算法與圖分析 92

3.1.4  圖算法的應用 92

3.2  有向圖與無向圖 92

3.3  完全圖與非完全圖 93

3.4  連通圖與非連通圖 94

3.5  加權圖與非加權圖 96

3.6  循環圖與非循環圖 97

3.7  常用的圖算法 98

3.7.1  路徑搜索算法 98

3.7.2  廣度優先搜索算法 98

3.7.3  深度優先搜索算法 104

3.7.4  最小生成樹算法 111

3.7.5  單源最短路徑算法 125

3.7.6  最大流算法 136

3.8  本章小結 146

第4章  字符串算法 147

4.1  字符串概述 147

4.1.1  字符串的定義 147

4.1.2  字符串與字節串 147

4.1.3  字節與字節數組 148

4.1.4  字符串算法的處理邏輯 148

4.2  字符串判斷算法 149

4.2.1  尋找相同的部分 149

4.2.2  字符串的內置操作 151

4.3  字符串匹配算法 153

4.3.1  BF算法 153

4.3.2  BK算法 154

4.3.3  KMP算法 162

4.3.4  BM算法 168

4.3.5  Sunday算法 174

4.3.6  Robin-Karp算法 176

4.3.7  Bitap算法 181

4.3.8  Horspool算法 199

4.4  字符串排序算法 203

4.4.1  字符串排序的原理 203

4.4.2  鍵索引計數法 204

4.4.3  LSD低位優先排序 209

4.4.4  MSD高位優先排序 213

4.4.5  三向字符串快速排序 219

4.5  字符串壓縮算法 224

4.5.1  字符串壓縮的原理 224

4.5.2  有損壓縮與無損壓縮 226

4.5.3  字典壓縮算法 227

4.5.4  哈夫曼壓縮算法 231

4.5.5  LZ77壓縮算法 243

4.6  本章小結 253

第5章  經典算法思想 254

5.1  枚舉算法思想 254

5.1.1  枚舉的原理 254

5.1.2  枚舉算法實例 254

5.2  遞推算法思想 256

5.2.1  遞推的原理 257

5.2.2  遞推與斐波那契數列 257

5.3  遞歸算法思想 259

5.3.1  遞歸的原理 259

5.3.2  用遞歸算法求階乘 260

5.4  分治算法思想 262

5.4.1  分治的原理 262

5.4.2  用分治算法求最值 263

5.5  貪心算法思想 265

5.5.1  貪心的原理 265

5.5.2  貪心算法實例 266

5.6  動態規劃算法思想 268

5.6.1  動態規劃的原理 268

5.6.2  動態規劃與路徑規劃 269

5.7  迭代算法思想 276

5.7.1  迭代的原理 276

5.7.2  用迭代算法求平方 277

5.8  回溯算法思想 278

5.8.1  回溯的原理 278

5.8.2  用回溯算法求八皇後問題 279

5.9  模擬算法思想 288

5.9.1  模擬的原理 288

5.9.2  用一維列表模擬一維關系 289

5.9.3  用二維列表模擬二維關系 289

5.10  本章小結 293