-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

C/C++常用算法手冊(第3版)

( 簡體 字)
作者:劉亞東;曲心慧類別:1. -> 程式設計 -> C -> C
   2. -> 程式設計 -> C++ -> C++
譯者:
出版社:中國鐵道出版社C/C++常用算法手冊(第3版) 3dWoo書號: 47627
詢問書籍請說出此書號!

缺書
NT售價: 300

出版日:8/1/2017
頁數:416
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787113230159
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

目錄:

第1篇 演算法基礎篇



第1章 演算法概述

1.1 什麼是演算法 1

1.2 演算法的發展歷史 2

1.3 演算法的分類 3

1.4 演算法相關概念的區別 3

1.5 演算法的表示 4

1.5.1 自然語言表示 4

1.5.2 流程圖表示 5

1.5.3 N-S圖表示 6

1.5.4 偽代碼表示 6

1.6 偽代碼與演算法程式的對應 7

1.6.1 基本對應規則 7

1.6.2 分支結構 8

1.6.3 迴圈結構 9

1.6.4 陣列及函數 9

1.7 演算法的性能評價 10

1.8 演算法實例 10

1.8.1 查找數字 11

【程式示例1-1】在擁有20個整數資料的陣列中查找某個資料 11

1.8.2 創建項目 12

1.8.3 編譯執行 13

1.9 演算法的新進展 14

1.10 小結 15

第2章 資料結構

2.1 資料結構概述 16

2.1.1 什麼是資料結構 16

2.1.2 資料結構中的基本概念 17

2.1.3 資料結構的內容17

2.1.4 資料結構的分類 19

2.1.5 資料結構的幾種存儲方式 19

2.1.6 資料類型 20

2.1.7 常用的資料結構 21

2.1.8 選擇合適的資料結構解決實際問題 22

2.2 線性表 22

2.2.1 什麼是線性表 22

2.2.2 線性表的基本運算 23

2.3 順序表結構 23

2.3.1 準備數據 24

2.3.2 初始化順序表 24

2.3.3 計算順序表長度 25

2.3.4 插入結點 25

2.3.5 追加結點 25

2.3.6 刪除結點 26

2.3.7 查找結點 26

2.3.8 顯示所有結點 27

2.3.9 順序表操作示例 27

【程式示例2-1】對某班級學生學號、姓名和年齡資料進行順序表操作 27

2.4 鏈表結構 31

2.4.1 什麼是鏈表結構 31

2.4.2 準備數據 32

2.4.3 追加結點 32

2.4.4 插入頭結點 33

2.4.5 查找結點 34

2.4.6 插入結點 34

2.4.7 刪除結點 35

2.4.8 計算鏈表長度 36

2.4.9 顯示所有結點 37

2.4.10 鏈表操作示例 37

【程式示例2-2】使用鏈表操作實現用戶管理 37

2.5 棧結構 41

2.5.1 什麼是棧結構 41

2.5.2 準備數據 42

2.5.3 初始化棧結構 43

2.5.4 判斷空棧 43

2.5.5 判斷滿棧 43

2.5.6 清空棧 44

2.5.7 釋放空間 44

2.5.8 入棧 44

2.5.9 出棧 45

2.5.10 讀結點數據 45

2.5.11 棧結構操作示例 45

【程式示例2-3】使用棧結構實現學生資料操作 45

2.6 佇列結構 48

2.6.1 什麼是佇列結構 48

2.6.2 準備數據 49

2.6.3 初始化佇列結構 49

2.6.4 判斷空佇列 50

2.6.5 判斷滿佇列 50

2.6.6 清空佇列 50

2.6.7 釋放空間 51

2.6.8 入佇列 51

2.6.9 出佇列 52

2.6.10 讀結點數據 52

2.6.11 計算佇列長度 52

2.6.12 佇列結構操作示例 53

【程式示例2-4】使用佇列結構實現學生資料操作 53

2.7 樹結構 56

2.7.1 什麼是樹結構 56

2.7.2 樹的基本概念 57

2.7.3 二叉樹 57

2.7.4 準備數據 61

2.7.5 初始化二叉樹 61

2.7.6 添加結點 62

2.7.7 查找結點 63

2.7.8 獲取左子樹 64

2.7.9 獲取右子樹 64

2.7.10 判斷空樹 65

2.7.11 計算二叉樹深度 65

2.7.12 清空二叉樹 65

2.7.13 顯示結點數據 66

2.7.14 遍歷二叉樹 66

2.7.15 樹結構操作示例 68

【程式示例2-5】經典二叉樹的遍歷(4種遍歷方式) 68

2.8 圖結構 70

2.8.1 什麼是圖結構 71

2.8.2 圖的基本概念 71

2.8.3 準備數據 75

2.8.4 創建圖 77

2.8.5 清空圖 78

2.8.6 顯示圖 78

2.8.7 遍歷圖 79

2.8.8 圖結構操作示例 80

【程式示例2-6】使用深度優先遍歷演算法遍歷圖操作程式 80

2.9 小結 83

第3章 基本演算法思想

3.1 常用演算法思想概述 84

3.2 窮舉演算法思想 85

3.2.1 窮舉演算法基本思想 85

3.2.2 窮舉演算法示例 85

【程式示例3-1】雞兔同籠問題 86

3.3 遞推算法思想 87

3.3.1 遞推算法基本思想 87

3.3.2 遞推算法示例 87

【程式示例3-2】兔子產仔問題 88

3.4 遞迴演算法思想 89

3.4.1 遞迴演算法基本思想 89

3.4.2 遞迴演算法示例 90

【程式示例3-3】求數位12的階乘 90

3.5 分治演算法思想 91

3.5.1 分治演算法基本思想 91

3.5.2 分治演算法示例 91

【程式示例3-4】從30枚銀幣中找出僅有的1枚假銀幣 93

3.6 概率演算法思想 95

3.6.1 概率演算法基本思想 95

3.6.2 概率演算法示例 96

【程式示例3-5】利用蒙特卡羅演算法計算圓周率π 96

3.7 小結 97



第2篇 演算法應用篇



第4章 排序演算法

4.1 排序演算法概述 98

4.2 冒泡排序法 99

4.2.1 冒泡排序演算法 99

4.2.2 冒泡排序演算法示例 100

【程式示例4-1】對包含10個數位的整型陣列進行排序 100

4.3 選擇排序法 102

4.3.1 選擇排序演算法 102

4.3.2 選擇排序演算法示例 103

【程式示例4-2】對包含10個數位的整型陣列進行排序 103

4.4 插入排序法 105

4.4.1 插入排序演算法 105

4.4.2 插入排序演算法示例 106

【程式示例4-3】對包含10個數位的整型陣列進行排序 106

4.5 Shell排序法 108

4.5.1 Shell排序演算法 108

4.5.2 Shell排序演算法示例 109

【程式示例4-4】對包含10個數位的整型陣列進行排序 109

4.6 快速排序法 111

4.6.1 快速排序演算法 111

4.6.2 快速排序演算法示例 112

【程式示例4-5】對包含18個數位的整型陣列進行排序 112

4.7 堆排序法 114

4.7.1 堆排序演算法 114

4.7.2 堆排序演算法示例 119

【程式示例4-6】對包含10個數位的整型陣列進行排序 119

4.8 合併排序法 121

4.8.1 合併排序演算法 121

4.8.2 合併排序演算法示例 124

【程式示例4-7】對包含15個數位的整型陣列進行排序 124

4.9 排序演算法的效率 127

4.10 排序演算法的其他應用 128

4.10.1 反序排序 128

4.10.2 反序插入排序演算法示例 129

【程式示例4-8】對包含10個數位的整型陣列進行排序 129

4.10.3 字串的排序 130

4.10.4 字串排序示例 131

【程式示例4-9】用快速排序演算法對包含16個字母的字串進行排序 131

4.10.5 字串陣列的排序 133

4.10.6 字串陣列排序示例 134

【程式示例4-10】用快速排序演算法對包含5個單詞的字串陣列進行排序 134

4.11 小結 135

第5章 查找演算法

5.1 查找演算法概述 136

5.2 順序查找 137

5.2.1 順序查找演算法 137

5.2.2 順序查找操作示例 137

【程式示例5-1】在包含15個數位的陣列中查找第7個數字 137

5.3 折半查找 139

5.3.1 折半查找演算法 139

5.3.2 折半查找操作示例 141

【程式示例5-2】在包含15個數位的陣列中查找第11個數字 141

5.4 小結 143

第6章 基本數學問題

6.1 判斷閏年 144

【程式示例6-1】判斷2000年到3000年之間所有的閏年 145

6.2 多項式計算 146

6.2.1 一維多項式求值 146

6.2.2 一維多項式求值示例 147

【程式示例6-2】計算多項式在x取不同值時的值 147

6.2.3 二維多項式求值 148

6.2.4 二維多項式求值示例 148

【程式示例6-3】求4×5的二維多項式在給定處的值 149

6.2.5 多項式乘法 150

6.2.6 多項式乘法示例 150

【程式示例6-4】計算兩個多項式的乘積多項式 150

6.2.7 多項式除法 151

6.2.8 多項式除法示例 152

【程式示例6-5】計算A(x)/B(x)的商多項式和餘多項式 153

6.3 亂數產生 154

6.3.1 C語言中的隨機函數 154

【程式示例6-6】在0∼32767之間產生一組亂數 154

【程式示例6-7】輸出0∼100之間的隨機整數 155

6.3.2 [0,1]之間均勻分佈的亂數演算法 156

【程式示例6-8】輸出10個0∼1之間的亂數 156

6.3.3 產生任意範圍的亂數 157

【程式示例6-9】輸出10個10.0∼20.0之間的浮點亂數 157

6.3.4 [m,n]之間均勻分佈的隨機整數演算法 158

【程式示例6-10】輸出10個100∼200之間的隨機整數 158

6.3.5 正態分佈的亂數產生演算法 159

【程式示例6-11】輸出10個正態分佈的亂數 160

6.4 複數運算 161

6.4.1 簡單的複數運算 161

6.4.2 簡單複數運算示例 163

【程式示例6-12】計算兩個複數的加減乘除 163

6.4.3 複數的冪運算 164

6.4.4 複數的冪運算示例 164

【程式示例6-13】一個複數的n(n=5)次冪運算 164

6.4.5 複指數運算 166

6.4.6 複指數運算示例 166

【程式示例6-14】一個複數的複指數運算 166

6.4.7 複對數運算 167

6.4.8 複對數運算示例 167

【程式示例6-15】一個複數的複對數計算 167

6.4.9 複正弦運算 168

6.4.10 複正弦運算示例 168

【程式示例6-16】一個複數的複正弦運算 168

6.4.11 複余弦運算 169

6.4.12 複余弦運算示例 170

【程式示例6-17】一個複數的複余弦運算 170

6.5 階乘 170

6.5.1 使用迴圈計算階乘 171

6.5.2 迴圈計算階乘示例 171

【程式示例6-18】求輸入整數的階乘運算結果 171

6.6 計算π的近似值 172

6.6.1 割圓術 172

6.6.2 割圓術演算法示例 174

【程式示例6-19】用割圓術計算圓周率π(根據輸入的切割次數) 174

6.6.3 級數公式 175

6.6.4 級數公式演算法示例 176

【程式示例6-20】用級數公式的演算法計算圓周率π 176

6.7 矩陣運算 177

6
序: