算法秘籍

《算法秘籍》是2023年機械工業出版社出版的圖書。

基本介紹

  • 中文名:算法秘籍
  • 出版時間:2023年11月1日
  • 出版社:機械工業出版社
  • ISBN:9787111736189
內容簡介,圖書目錄,

內容簡介

這是一本關於數據結構和算法的書,以Java為描述語言,介紹了計算機編程中常用的數據結構和算法。全書共13章,講述了常見的數據結構、排序算法、位運算、樹、遞歸、回溯算法、貪心算法、雙指針和滑動視窗、BFS和DFS、前綴和、動態規劃、並查集、其他經典算法等知識。本書內容豐富,實用性強,通過示例練習和問題分析等方式,詳細講解了與算法有關的知識點。本書附贈視頻講解二維碼,以及原始碼。
本書適合程式設計師、計算機專業相關師生,以及對算法感興趣的讀者閱讀。

圖書目錄

前言
第1章 常見的數據結構/
1.1數組/
1.1.1滾動數組/
1.1.2差分數組/
1.1.3二維差分數組/
1.1.4樹狀數組/
1.2鍊表/
1.3佇列/
1.4棧/
1.5散列表/
1.6樹/
1.6.1二叉搜尋樹/
1.6.2AVL樹/
1.6.3紅黑樹/
1.6.4字典樹/
1.6.5哈夫曼樹/
1.6.6線段樹/
1.6.7笛卡兒樹/
1.6.8其他樹/
1.7堆/
1.8圖/
1.8.1圖的分類/
1.8.2圖的表示方式/
1.8.3圖的遍歷/
1.8.4迪傑斯特拉(Dijkstra)算法/
1.8.5貝爾曼-福特(Bellman-Ford)算法/
1.8.6SPFA算法/
1.8.7弗洛伊德(Floyd)算法/
1.8.8普里姆(Prim)算法/
1.8.9克魯斯卡爾(Kruskal)算法/
1.8.10博魯夫卡(Boruvka)算法/
1.8.11拓撲排序/
1.9數據結構總結/
第2章 排序算法/
2.1冒泡排序/
2.2選擇排序/
2.3插入排序/
2.4快速排序/
2.5歸併排序/
2.6堆排序/
2.7桶排序/
2.8基數排序/
2.9希爾排序/
2.10計數排序/
2.11其他排序/
第3章 位運算/
3.1位運算的常見操作符/
3.2位運算的一些簡單操作/
3.3示例練習/
3.3.1交換兩個數字的值/
3.3.2隻出現一次的數字/
3.3.3有限狀態機/
3.3.4二進制中1的個數/
3.3.5總的比特位數/
3.3.6反轉二進制/
3.3.72的冪/
3.3.84的冪/
3.3.9交替二進制數/
3.3.10數字範圍的按位與/
3.3.11字元串長度的最大乘積/
3.3.12兩整數之和/
3.3.13集合的所有子集/
第4章 算法秘籍樹/
4.1二叉樹的遍歷方式/
4.1.1二叉樹的DFS遍歷/
4.1.2二叉樹的Morris遍歷/
4.1.3二叉樹的BFS遍歷/
4.1.4N叉樹的遍歷/
4.2二叉樹層次遍歷習題/
4.3二叉樹的特性習題/
4.4二叉樹的深度優先搜尋習題/
4.5二叉樹的構造/
4.6二叉樹的公共祖先問題/
第5章 遞歸/
5.1遞歸的理解/
5.2示例練習/
5.2.1反轉鍊表/
5.2.2檢查是否是回文鍊表/
5.2.3刪除鍊表的倒數第n個節點/
5.2.4生成括弧/
5.2.5二叉樹展開為鍊表/
5.2.6將二叉搜尋樹改為累加樹/
第6章 回溯算法/
6.1回溯算法的使用/
6.2示例練習/
6.2.1解數獨/
6.2.2n皇后/
6.2.3目標值的組合/
6.2.4組合/
6.2.5單詞搜尋/
6.3回溯算法的剪枝/
6.3.1有重複項數字的全排列/
6.3.2劃分為k個相等的子集/
第7章 貪心算法/
7.1貪心算法存在的不足/
7.2示例練習/
7.2.1檸檬找零/
7.2.2分發餅乾/
7.2.3分糖果問題/
7.2.4最小跳躍次數/
7.2.5無重疊區域/
第8章 雙指針和滑動視窗/
8.1相向雙指針/
8.1.1回文串/
8.1.2盛最多水的容器/
8.2同向雙指針/
8.2.1移動所有的0到數組末尾/
8.2.2兩個鍊表的第一個公共節點/
8.3快慢雙指針/
8.3.1判斷鍊表中是否有環/
8.3.2找出鍊表的中間節點/
8.4滑動視窗/
8.5大小可變視窗/
8.5.1最長沒有重複字元的子串/
8.5.2最小覆蓋子串/
8.5.3長度最小的連續子數組/
8.6固定視窗/
8.6.1平均值最大的子數組/
8.6.2找到字元串中的異位詞/
8.6.3子數組中的最大值/
8.7隻增不減視窗/
8.7.1最大連續1的個數/
8.7.2替換後的最長重複字元/
8.7.3籃子裡的水果/
第9章 BFS和DFS/
9.1BFS的使用模板/
9.2DFS的使用模板/
9.3示例練習/
9.3.1島嶼數量/
9.3.2被圍繞的區域/
9.3.3島嶼的最大面積/
9.3.4腐爛的蘋果/
9.3.5刪除無效的括弧/
9.3.6省份數量/
第10章 前綴和/
10.1一維前綴和/
10.2二維前綴和/
10.3示例練習/
10.3.1和為k的子數組/
10.3.2k個奇數的子數組/
10.3.3連續數組的長度/
10.3.4總和可被k整除的子數組/
10.3.5和為k的路徑/
第11章 動態規劃/
11.1動態規劃講解/
11.1.1兌換零錢(一)/
11.1.2國王與金礦/
11.1.3解題思路/
11.2背包問題/
11.2.101背包問題/
11.2.2完全背包問題/
11.2.3多重背包問題/
11.2.4狀態壓縮/
11.3組合與排列/
11.3.1兌換零錢(二)/
11.3.2加起來和為目標值的組合/
11.3.3單詞拆分/
11.4背包練習/
11.4.1目標和(01背包)/
11.4.2平分子集(01背包)/
11.4.3最少的完全平方數(完全
背包)/
11.5其他練習/
11.5.1最長公共子串/
11.5.2最長公共子序列/
11.5.3格線中的不同路徑/
11.5.4最大正方形/
11.5.5最長上升子序列/
第12章 並查集/
12.1並查集的使用/
12.2並查集最佳化/
12.3並查集路徑壓縮/
12.4按大小合併最佳化/
12.5按秩合併最佳化/
12.6示例練習/
12.6.1島嶼數量/
12.6.2被圍繞的區域/
12.6.3省份數量/
12.6.4飛地的數量/
第13章 其他經典算法/
13.1KMP算法/
13.2馬拉車算法/
13.3摩爾投票算法/
13.4埃氏篩法/
13.5兩個數的最大公約數/
13.6算術表達式的運算/
13.6.1中綴表達式轉換的括弧法/
13.6.2中綴表達式轉換的二叉樹法/
13.6.3中綴表達式轉前綴表達式/
13.6.4中綴表達式轉後綴表達式/
13.6.5後綴表達式求值/
13.6.6前綴表達式求值/
13.7牛頓疊代法求平方根/
13.8Base64編碼/

相關詞條

熱門詞條

聯絡我們