本書分三篇,共14章,分別介紹了算法基礎、算法應用和算法面試題。首先介紹了算法概述,然后重點分析了數據結構和基本算法思想;接著詳細講解了算法在排序、查找、數學計算、數論、歷史趣題、游戲等領域中的應用;后梳理和精選了一些經典的算法面試題,供讀者開拓思維之用。
算法是一切程序設計的基礎和靈魂,更是一位程序員編程水平高低的集中體現。
涵蓋廣泛:精煉的理論講述嵌入經典算法示例,學習查詢兼而有之。
闡述到位:算法思想、算法實現和經典面試題合理搭配,相輔相成。
實例完善:分析精準,注釋,保障每段代碼皆可通過編譯執行。
超過600分鐘講解視頻和案例源代碼傾囊相送。
附贈5本電子書教程鋪就Java程序員成長之路。
第1章 算法和實現算法的Java語法
1.1 建立算法初步概念 1
1.1.1 什么是算法 1
1.1.2 算法的發展歷史 3
1.1.3 算法的分類 3
1.2 算法相關概念的區別 3
1.2.1 算法與公式的關系 4
1.2.2 算法與程序的關系 4
1.2.3 算法與數據結構的關系 4
1.3 算法的表示 4
1.3.1 自然語言表示 5
1.3.2 流程圖表示 5
1.3.3 N-S圖表示 6
1.3.4 偽代碼表示 7
1.4 算法的性能評價 7
1.4.1 時間復雜度 8
1.4.2 空間復雜度 8
1.5 一個算法實例 8
1.5.1 查找數字 8
1.5.2 創建項目 10
1.5.3 編譯執行 11
1.6 Java程序的基本結構 13
1.6.1 類是一個基本單元 13
1.6.2 main方法 14
1.6.3 自定義方法 14
1.6.4 System.out.println的使用 15
1.6.5 一個簡單而完整的程序 15
1.7 順序結構 16
1.8 分支結構 17
1.8.1 if...else分支結構 17
1.8.2 if...else嵌套 18
1.8.3 switch語句 19
1.8.4 編程實例 20
1.9 循環結構 21
1.9.1 while循環 22
1.9.2 do…while循環 22
1.9.3 for循環 23
1.9.4 編程實例 23
1.10 跳轉結構 27
1.10.1 break 27
1.10.2 continue 27
1.10.3 編程實例 27
1.11 小結 29
第2章 數據結構
2.1 數據結構概述 30
2.1.1 什么是數據結構 30
2.1.2 數據結構中的基本概念 31
2.1.3 數據結構的內容 31
2.1.4 數據結構的分類 33
2.1.5 數據結構的幾種存儲方式 33
2.1.6 數據類型 34
2.1.7 常用的數據結構 35
2.1.8 選擇合適的數據結構解決實際問題 36
2.2 線性表 36
2.2.1 什么是線性表 36
2.2.2 線性表的基本運算 37
2.3 順序表結構 37
2.3.1 準備數據 38
2.3.2 初始化順序表 38
2.3.3 計算順序表長度 38
2.3.4 插入結點 39
2.3.5 追加結點 39
2.3.6 刪除結點 40
2.3.7 查找結點 40
2.3.8 顯示所有結點 41
2.3.9 順序表操作實例 41
2.4 鏈表結構 45
2.4.1 什么是鏈表結構 45
2.4.2 準備數據 46
2.4.3 追加結點 46
2.4.4 插入頭結點 47
2.4.5 查找結點 48
2.4.6 插入結點 49
2.4.7 刪除結點 50
2.4.8 計算鏈表長度 51
2.4.9 顯示所有結點 51
2.4.10 鏈表操作實例 51
2.5 棧結構 56
2.5.1 什么是棧結構 56
2.5.2 準備數據 57
2.5.3 初始化棧結構 57
2.5.4 判斷空棧 58
2.5.5 判斷滿棧 58
2.5.6 清空棧 58
2.5.7 釋放空間 59
2.5.8 入棧 59
2.5.9 出棧 59
2.5.10 讀結點數據 60
2.5.11 棧結構操作實例 60
2.6 隊列結構 63
2.6.1 什么是隊列結構 63
2.6.2 準備數據 64
2.6.3 初始化隊列結構 64
2.6.4 判斷空隊列 65
2.6.5 判斷滿隊列 65
2.6.6 清空隊列 65
2.6.7 釋放空間 66
2.6.8 入隊列 66
2.6.9 出隊列 66
2.6.10 讀結點數據 67
2.6.11 計算隊列長度 67
2.6.12 隊列結構操作實例 68
2.7 樹結構 71
2.7.1 什么是樹結構 71
2.7.2 樹的基本概念 72
2.7.3 二叉樹 73
2.7.4 準備數據 76
2.7.5 初始化二叉樹 76
2.7.6 添加結點 77
2.7.7 查找結點 78
2.7.8 獲取左子樹 79
2.7.9 獲取右子樹 79
2.7.10 判斷空樹 80
2.7.11 計算二叉樹深度 80
2.7.12 清空二叉樹 81
2.7.13 顯示結點數據 81
2.7.14 遍歷二叉樹 81
2.7.15 樹結構操作實例 83
2.8 圖結構 91
2.8.1 什么是圖結構 91
2.8.2 圖的基本概念 91
2.8.3 準備數據 95
2.8.4 創建圖 97
2.8.5 清空圖 98
2.8.6 顯示圖 98
2.8.7 遍歷圖 99
2.8.8 圖結構操作實例 100
2.9 小結 103
第3章 基本算法思想
3.1 常用算法思想概述 104
3.2 窮舉算法思想 104
3.2.1 窮舉算法基本思想 105
3.2.2 窮舉算法實例 105
3.3 遞推算法思想 107
3.3.1 遞推算法基本思想 107
3.3.2 遞推算法實例 107
3.4 遞歸算法思想 109
3.4.1 遞歸算法基本思想 109
3.4.2 遞歸算法實例 109
3.5 分治算法思想 110
3.5.1 分治算法基本思想 111
3.5.2 分治算法實例 111
3.6 概率算法思想 115
3.6.1 概率算法基本思想 115
3.6.2 概率算法實例 115
3.7 小結 117
第4章 排序算法
4.1 排序算法概述 118
4.2 冒泡排序算法 119
4.2.1 冒泡排序算法 119
4.2.2 冒泡排序算法實例 120
4.3 選擇排序算法 122
4.3.1 選擇排序算法 122
4.3.2 選擇排序算法實例 123
4.4 插入排序算法 125
4.4.1 插入排序算法 125
4.4.2 插入排序算法實例 126
4.5 Shell排序算法 127
4.5.1 Shell排序算法 128
4.5.2 Shell排序算法實例 129
4.6 快速排序算法 130
4.6.1 快速排序算法 131
4.6.2 快速排序算法實例 132
4.7 堆排序算法 134
4.7.1 堆排序算法 134
4.7.2 堆排序算法實例 138
4.8 合并排序算法 141
4.8.1 合并排序算法 141
4.8.2 合并排序算法實例 144
4.9 排序算法的效率 147
4.10 排序算法的其他應用 147
4.10.1 反序排序 147
4.10.2 字符串數組的排序 150
4.10.3 字符串的排序 153
4.11 小結 155
第5章 查找算法
5.1 查找算法概述 156
5.2 順序查找 157
5.2.1 順序查找算法 157
5.2.2 順序查找操作實例 157
5.3 折半查找 159
5.3.1 折半查找算法 159
5.3.2 折半查找操作實例 161
5.4 數據結構中的查找算法 163
5.4.1 順序表結構中的查找算法 164
5.4.2 鏈表結構中的查找算法 167
5.4.3 樹結構中的查找算法 171
5.4.4 圖結構中的查找算法 171
5.5 小結 172
第6章 基本數學問題
6.1 判斷閏年 173
6.2 多項式計算 175
6.2.1 一維多項式求值 175
6.2.2 二維多項式求值 177
6.2.3 多項式乘法 179
6.2.4 多項式除法 181
6.3 隨機數生成算法 183
6.3.1 Java語言中的隨機方法 183
6.3.2 [0,1]之間均勻分布的隨機數算法 185
6.3.3 產生任意范圍的隨機數 187
6.3.4 [m,n]之間均勻分布的隨機整數算法 188
6.3.5 正態分布的隨機數生成算法 189
6.4 復數運算 191
6.4.1 簡單的復數運算 191
6.4.2 復數的冪運算 194
6.4.3 復指數運算 195
6.4.4 復對數運算 196
6.4.5 復正弦運算 198
6.4.6 復余弦運算 199
6.5 階乘 200
6.5.1 使用循環來計算階乘 200
6.5.2 使用遞歸來計算階乘 201
6.6 計算π的近似值 202
6.6.1 割圓術 203
6.6.2 蒙特卡羅算法 206
6.6.3 級數公式 208
6.7 矩陣運算 210
6.7.1 矩陣加法 210
6.7.2 矩陣減法 211
6.7.3 矩陣乘法 213
6.8 方程求解 215
6.8.1 線性方程求解——高斯消元法 215
6.8.2 非線性方程求解——二分法 220
6.8.3 非線性方程求解——牛頓迭代法 222
6.9 小結 225
第7章 數據結構問題
7.1 動態數組排序 226
7.1.1 動態數組的存儲和排序 226
7.1.2 動態數組排序實例 227
7.2 約瑟夫環 230
7.2.1 簡單約瑟夫環算法 230
7.2.2 簡單約瑟夫環求解 232
7.2.3 復雜約瑟夫環算法 233
7.2.4 復雜約瑟夫環求解 234
7.3 城市之間的最短總距離 237
7.3.1 最短總距離算法 237
7.3.2 最短總距離求解 240
7.4 最短路徑 244
7.4.1 最短路徑算法 245
7.4.2 最短路徑求解 247
7.5 括號匹配 252
7.5.1 括號匹配算法 252
7.5.2 括號匹配求解 254
7.6 小結 257
第8章 數論問題
8.1 數論概述 258
8.1.1 數論概述 258
8.1.2 數論的分類 259
8.1.3 初等數論 260
8.1.4 本章用到的基本概念 260
8.2 數 261
8.2.1 什么是數 261
8.2.2 計算數算法 262
8.3 親密數 264
8.3.1 什么是
還沒開始看
Java數據結構
這本書不錯,挺好的!
書不錯,可以。
物流快,但是代碼太繁瑣了
111111111111111111111111111111
好
我不管,Java 是世界上最好的語言?。?!
看起來還行,希望能夠幫到我
書到了,還不錯,物流快
包裝沒有磨損 還不錯
包裝的很好,當當網買書,不后悔
整體感覺不錯
紙張很好!
買回來的時候有塑料封裝,挺好的
內容還不錯希望能有用
包裝不錯,但是發貨速度太慢啦
66666
還不錯,慢慢看
還不錯的一本書
學習中,當工具書沒問題!
發貨很及時,
感覺還可以。
不錯,值得買
書破掉了,強烈要求換一個盒子寄過來,只有一袋子磨損太厲害!
簡單易懂,偶有錯別字,初學者可以快速入門值得推薦
書很好啊,但是快遞很差勁啊,居然用物流。而且物流送貨自己不帶錢,等了一天,結果下午五點多才送,快點換快遞吧。
正在看 有的地方會有點小錯誤 光盤和書不配套 不過這本書還是不錯的 等我慢慢研究 算法沒學好 趕緊補
同時買了5本,這是其中一本。初步看了一下,感覺不錯,不過需要較多的java知識才能吃透,待把java基礎知識學完再學習它。
除了算法的部分,也講到數據結構,都是循序漸進,是一本不可多得的參考學習手冊!