圖解算法入門:一本書掌握算法要點與訣竅
王茂
- 出版商: 化學工業
- 出版日期: 2026-01-01
- 售價: $420
- 語言: 簡體中文
- 頁數: 227
- ISBN: 7122491994
- ISBN-13: 9787122491992
-
相關分類:
Algorithms-data-structures
下單後立即進貨 (約2週~3週)
相關主題
商品描述
《圖解算法入門:一本書掌握算法要點與訣竅》以直觀的圖解方式,系統講解了算法的基本概念、常用數據結構和典型算法實現,幫助讀者建立起清晰的算法思維框架。全書內容分為兩大部分:基礎知識篇和算法篇。基礎知識篇涵蓋變量、數組、數據結構等編程基礎;算法篇詳細解析遞歸、排序等核心算法,並通過大量插圖和生活化案例(如找零錢、漢諾塔謎題等)將抽象概念具象化,極大降低了理解難度。書中還提供了JavaScript示例程序,讀者無需搭建覆雜環境,通過瀏覽器即可動手實踐,增強學習體驗。本書突出特點是“圖解+實戰”,幾乎每個算法都配有步驟圖示和偽代碼分析,避免純文字描述的枯燥,讓讀者在視覺化過程中輕松掌握算法的本質與應用場景。無論是希望入門編程的讀者,還是想要鞏固算法基礎的學習者,都能從中獲得紮實的知識儲備和解決實際問題的能力。
本書適合編程初學者、學生以及對算法感興趣的讀者閱讀學習。
目錄大綱
第1章 算法
01 什麼是算法 002
解決問題的處理步驟 002
02 在日常生活中下意識地使用的算法 004
找零的數量 004
03 了解算法能有什麼優勢 006
能夠幫助提升工作效率或優化經營方案 006
04 算法和程序的關系 008
算法在程序中的重要性 008
05 結構化程序設計010
解答覆雜的問題010
什麼是結構化編程010
三種控制結構012
第2章 變量和數組
01 表示數據的“值”016
表達式和值016
02 表示數據類型的“類型”018
類型018
03 表示數據存放的箱子“變量”020
變量020
04 將數據放入變量“賦值”022
把數據裝進箱子裏022
變量的代入022
計算結果的賦值022
05 多個數據一起存放“數組”024
數組024
數組元素024
06 字符串“數組”026
逐字分解的數組026
搜索字符串數組的算法026
07 二維數組028
第3章 算法中常用的數據結構
01 數據結構032
什麼是數據結構032
基本數據結構032
02 數組(相同類型的變量連續排列的結構)034
數組的特點034
數組的缺點034
03 按順序列出並鏈接數據(鏈表)036
鏈表的特點036
單向鏈表038
循環鏈表038
雙向鏈表038
靜態鏈表(散列)040
靜態鏈表的特點040
04 堆棧(後入先出的鏈表結構)042
什麼是堆棧042
堆棧的特點042
壓入和彈出(push和pop)044
日常生活中使用堆棧的場合046
05 隊列(先入先出的鏈表結構)048
什麼是隊列048
隊列的特點048
入隊和出隊050
日常生活中使用隊列的場合052
06 樹結構(包括層次關系的非線性數據結構)054
什麼是樹結構054
樹結構的特點054
二叉樹056
二叉樹的特征056
二叉搜索樹058
二叉搜索樹遍歷060
第4章 基本算法
01 算法的基礎是“重覆”066
重覆(循環)使用的場合066
流程圖和偽代碼066
02 習慣使用流程圖068
流程圖中出現的符號068
符號的意義068
嘗試使用流程圖070
03 習慣偽代碼的閱讀方法072
一般的程序結構072
聲明部分的描述形式074
程序和函數(子程序)聲明074
處理部分的描述形式076
選擇的描述形式076
循環(重覆)的描述形式078
先判斷型和後判斷型080
函數(子程序)的描述形式082
實際參數(實參)和形式參數(形參)083
變量的作用域(有效範圍)084
04 求數據的和086
求和的步驟086
求課程總分的流程圖088
求課程總分的程序089
05 求數據的平均值090
求平均值的流程圖090
求平均值程序091
06 交換兩個數據092
交換數據的步驟092
交換數組元素的流程圖094
交換數組元素的程序095
07 求數據的最大值096
求最大值的步驟096
求最大值的流程圖098
求最大值程序099
08求數據的最小值100
求最小值的步驟100
求最小值的流程圖102
求最小值的程序103
第5章 遞歸算法
01 什麼是“遞歸”106
像“平行鏡”一樣的狀態106
02 熟悉遞歸處理108
吃到盤子空了108
遞歸處理流程110
03 通過遞歸求數據的和112
求100個數字的總和112
流程圖114
04 通過遞歸求數據的階乘116
什麼是階乘116
流程圖和程序118
05 “漢諾塔”問題怎麼解決120
什麼是漢諾塔120
漢諾塔(一層)122
漢諾塔(兩層)122
漢諾塔(三層)124
06 用算法解決“漢諾塔”問題126
如何解決N層的漢諾塔126
移動N層漢諾塔的步驟128
準備繪制流程圖130
漢諾塔函數H與移動的對應關系132
漢諾塔函數流程圖(未完成)134
漢諾塔函數結束條件136
漢諾塔函數流程圖(完成)138
找出移動步驟的程序138
驗證漢諾塔函數的流程140
用JavaScript執行漢諾塔的移動142
第6章 排序算法
01 什麼是排序146
數據排序146
7個典型排序146
02 冒泡排序(基本交換法)148
兩兩比較148
冒泡排序流程圖150
冒泡排序程序152
降序(從大到小)的冒泡排序153
03 選擇排序(基本選擇法)154
冒泡排序的改良版154
選擇排序流程圖156
選擇排序程序158
按降序進行選擇排序(從大到小)160
04 插入排序(基本插入法)162
插入到已排列好的數組中162
插入排序流程圖164
插入排序程序166
05 希爾排序168
插入排序改進版168
分組方法170
希爾排序流程圖172
排序程序176
06 合並排序(歸並排序法)178
什麼是合並排序178
合並排序的遞歸處理180
合並排序函數是什麼樣子呢182
子鏈表的位置範圍怎麼表示184
合並排序函數的結束條件186
子鏈表的排序結束後做什麼188
合並排序流程圖190
合並排序程序192
07 堆排序194
什麼是堆排序194
堆排序的步驟196
堆排序的整體流程圖202
堆排序流程圖(最小堆函數)204
堆排序程序206
08快速排序208
什麼是快速排序208
快速排序示例210
快速排序的步驟(步驟1~步驟2)216
快速排序的步驟(步驟3)218
快速排序流程圖(總體)220
分組流程圖222
快速排序程序224
結束語
