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