当前位置:首页 > 工业技术
C/C++常用算法手册  修订版
C/C++常用算法手册  修订版

C/C++常用算法手册 修订版PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:秦姣华,向旭宇编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2013
  • ISBN:9787113156909
  • 页数:406 页
图书介绍:本书通过三篇内容,全面讲述C/C++语言的算法思想,包括对算法的概述各种常用算法的讲解和实例体现,并对一些高级的常用算法技巧进行了详细阐述。
《C/C++常用算法手册 修订版》目录

第1篇 算法基础篇 2

第1章 算法概述 2

1.1 什么是算法 2

1.2 算法的发展历史 3

1.3 算法的分类 4

1.4 算法相关概念的区别 4

1.5 算法的表示 5

1.5.1 自然语言表示 5

1.5.2 流程图表示 6

1.5.3 N-S图表示 7

1.5.4 伪代码表示 7

1.6 算法的性能评价 8

1.7 算法实例 9

1.7.1 查找数字 9

1.7.2 创建项目 11

1.7.3 编译执行 12

1.8 算法的新进展 13

1.9 小结 14

第2章 数据结构 15

2.1 数据结构概述 15

2.1.1 什么是数据结构 15

2.1.2 数据结构中的基本概念 16

2.1.3 数据结构的内容 16

2.1.4 数据结构的分类 18

2.1.5 数据结构的几种存储方式 18

2.1.6 数据类型 19

2.1.7 常用的数据结构 20

2.1.8 选择合适的数据结构解决实际问题 21

2.2 线性表 21

2.2.1 什么是线性表 21

2.2.2 线性表的基本运算 22

2.3 顺序表结构 23

2.3.1 准备数据 23

2.3.2 初始化顺序表 24

2.3.3 计算顺序表长度 24

2.3.4 插入结点 24

2.3.5 追加结点 25

2.3.6 删除结点 25

2.3.7 查找结点 25

2.3.8 显示所有结点 26

2.3.9 顺序表操作示例 26

2.4 链表结构 30

2.4.1 什么是链表结构 30

2.4.2 准备数据 31

2.4.3 追加结点 31

2.4.4 插入头结点 33

2.4.5 查找结点 33

2.4.6 插入结点 34

2.4.7 删除结点 35

2.4.8 计算链表长度 36

2.4.9 显示所有结点 36

2.4.10 链表操作示例 37

2.5 栈结构 41

2.5.1 什么是栈结构 41

2.5.2 准备数据 42

2.5.3 初始化栈结构 42

2.5.4 判断空栈 43

2.5.5 判断满栈 43

2.5.6 清空栈 43

2.5.7 释放空间 44

2.5.8 入栈 44

2.5.9 出栈 44

2.5.10 读结点数据 45

2.5.11 栈结构操作示例 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 出队列 51

2.6.10 读结点数据 52

2.6.11 计算队列长度 52

2.6.12 队列结构操作示例 53

2.7 树结构 56

2.7.1 什么是树结构 56

2.7.2 树的基本概念 56

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.8 图结构 71

2.8.1 什么是图结构 71

2.8.2 图的基本概念 72

2.8.3 准备数据 76

2.8.4 创建图 78

2.8.5 清空图 79

2.8.6 显示图 79

2.8.7 遍历图 80

2.8.8 图结构操作示例 81

2.9 小结 84

第3章 基本算法思想 85

3.1 常用算法思想概述 85

3.2 穷举算法思想 85

3.2.1 穷举算法基本思想 86

3.2.2 穷举算法示例 86

3.3 递推算法思想 88

3.3.1 递推算法基本思想 88

3.3.2 递推算法示例 88

3.4 递归算法思想 90

3.4.1 递归算法基本思想 90

3.4.2 递归算法示例 90

3.5 分治算法思想 92

3.5.1 分治算法基本思想 92

3.5.2 分治算法示例 92

3.6 概率算法思想 96

3.6.1 概率算法基本思想 96

3.6.2 概率算法示例 97

3.7 小结 98

第2篇 算法基本应用篇 100

第4章 排序算法 100

4.1 排序算法概述 100

4.2 冒泡排序法 101

4.2.1 冒泡排序算法 101

4.2.2 冒泡排序算法示例 102

4.3 选择排序法 104

4.3.1 选择排序算法 104

4.3.2 选择排序算法示例 105

4.4 插入排序法 107

4.4.1 插入排序算法 107

4.4.2 插入排序算法示例 108

4.5 Shell排序法 110

4.5.1 Shell排序算法 110

4.5.2 Shell排序算法示例 111

4.6 快速排序法 113

4.6.1 快速排序算法 113

4.6.2 快速排序算法示例 114

4.7 堆排序法 116

4.7.1 堆排序算法 116

4.7.2 堆排序算法示例 121

4.8 合并排序法 123

4.8.1 合并排序算法 123

4.8.2 合并排序算法示例 126

4.9 排序算法的效率 129

4.10 排序算法的其他应用 130

4.10.1 反序排序 130

4.10.2 字符串数组的排序 132

4.10.3 字符串的排序 135

4.11 小结 137

第5章 查找算法 138

5.1 查找算法概述 138

5.2 顺序查找 138

5.2.1 顺序查找算法 139

5.2.2 顺序查找操作示例 139

5.3 折半查找 141

5.3.1 折半查找算法 141

5.3.2 折半查找操作示例 142

5.4 数据结构中的查找算法 145

5.4.1 顺序表结构中的查找算法 145

5.4.2 链表结构中的查找算法 148

5.4.3 树结构中的查找算法 151

5.4.4 图结构中的查找算法 152

5.5 小结 153

第6章 基本数学问题 154

6.1 判断闰年 154

6.2 多项式计算 156

6.2.1 一维多项式求值 156

6.2.2 二维多项式求值 158

6.2.3 多项式乘法 160

6.2.4 多项式除法 161

6.3 随机数生成算法 164

6.4 复数运算 171

6.4.1 简单的复数运算 172

6.4.2 复数的幂运算 174

6.4.3 复指数运算 176

6.4.4 复对数运算 177

6.4.5 复正弦运算 178

6.4.6 复余弦运算 179

6.5 阶乘 180

6.6 计算π的近似值 183

6.6.1 割圆术 183

6.6.2 蒙特卡罗算法 185

6.6.3 级数公式 187

6.7 矩阵运算 190

6.7.1 矩阵加法 190

6.7.2 矩阵减法 191

6.7.3 矩阵乘法 193

6.8 方程求解 195

6.8.1 线性方程求解——高斯消元法 195

6.8.2 非线性方程求解——二分法 200

6.8.3 非线性方程求解——牛顿迭代法 202

6.9 小结 205

第7章 复杂的数值计算算法 206

7.1 拉格朗日插值 206

7.1.1 拉格朗日插值算法 206

7.1.2 拉格朗日插值示例 207

7.2 数值积分 210

7.2.1 数值积分算法 210

7.2.2 数值积分示例 211

7.3 开平方 213

7.3.1 开平方算法 213

7.3.2 开平方示例 213

7.4 极值问题的求解算法 215

7.4.1 极值求解算法 215

7.4.2 极值求解示例 217

7.5 特殊函数的计算算法 221

7.5.1 伽玛函数 221

7.5.2 贝塔函数 224

7.5.3 正弦积分函数 228

7.5.4 余弦积分函数 231

7.5.5 指数积分函数 235

7.6 小结 239

第8章 经典数据结构问题 240

8.1 动态数组排序 240

8.1.1 动态数组的存储和排序 240

8.1.2 动态数组排序示例 241

8.2 约瑟夫环 243

8.2.1 简单约瑟夫环算法 243

8.2.2 简单约瑟夫环求解 245

8.2.3 复杂约瑟夫环算法 247

8.2.4 复杂约瑟夫环求解 248

8.3 城市之间的最短总距离 250

8.3.1 最短总距离算法 250

8.3.2 最短总距离求解 253

8.4 最短路径 257

8.4.1 最短路径算法 258

8.4.2 最短路径求解 260

8.5 括号匹配 265

8.5.1 括号匹配算法 265

8.5.2 括号匹配求解 267

8.6 小结 270

第9章 数论问题 271

9.1 数论 271

9.1.1 数论概述 271

9.1.2 数论的分类 272

9.1.3 初等数论 273

9.1.4 基本概念 273

9.2 完全数 274

9.2.1 完全数概述 274

9.2.2 计算完全数算法 275

9.3 亲密数 277

9.3.1 亲密数概述 277

9.3.2 计算亲密数算法 277

9.4 水仙花数 280

9.4.1 水仙花数概述 280

9.4.2 计算水仙花数算法 281

9.5 自守数 283

9.5.1 自守数概述 283

9.5.2 计算自守数算法 284

9.6 最大公约数 287

9.6.1 计算最大公约数算法——辗转相除法 287

9.6.2 计算最大公约数算法——Stein算法 288

9.6.3 计算最大公约数示例 289

9.7 最小公倍数 290

9.8 素数 292

9.8.1 素数概述 292

9.8.2 计算素数算法 292

9.9 回文素数 294

9.9.1 回文素数概述 294

9.9.2 计算回文素数算法 294

9.10 平方回文数 297

9.10.1 平方回文数概述 297

9.10.2 计算平方回文数算法 297

9.11 分解质因数 299

9.12 小结 301

第10章 算法经典趣题 302

10.1 百钱买百鸡 302

10.1.1 百钱买百鸡算法 302

10.1.2 百钱买百鸡求解 303

10.2 五家共井 304

10.2.1 五家共井算法 304

10.2.2 五家共井求解 305

10.3 鸡兔同笼 307

10.3.1 鸡兔同笼算法 307

10.3.2 鸡兔同笼求解 308

10.4 猴子吃桃 308

10.4.1 猴子吃桃算法 308

10.4.2 猴子吃桃求解 309

10.5 舍罕王赏麦 310

10.5.1 舍罕王赏麦问题 310

10.5.2 舍罕王赏麦求解 311

10.6 汉诺塔 312

10.6.1 汉诺塔算法 312

10.6.2 汉诺塔求解 314

10.7 窃贼问题 315

10.7.1 窃贼问题算法 315

10.7.2 窃贼问题求解 317

10.8 马踏棋盘 320

10.8.1 马踏棋盘算法 320

10.8.2 马踏棋盘求解 321

10.9 八皇后问题 323

10.9.1 八皇后问题算法 324

10.9.2 八皇后问题求解 325

10.10 寻找假银币 327

10.10.1 寻找假银币算法 327

10.10.2 寻找假银币求解 329

10.11 青蛙过河 331

10.11.1 青蛙过河算法 331

10.11.2 青蛙过河求解 333

10.12 三色旗 335

10.12.1 三色旗算法 335

10.12.2 三色旗求解 337

10.13 渔夫捕鱼 339

10.13.1 渔夫捕鱼算法 339

10.13.2 渔夫捕鱼求解 340

10.14 爱因斯坦的阶梯 341

10.14.1 爱因斯坦的阶梯算法 341

10.14.2 爱因斯坦的阶梯求解 342

10.15 兔子产仔 342

10.15.1 兔子产仔算法 343

10.15.2 兔子产仔求解 343

10.16 常胜将军 344

10.16.1 常胜将军算法 344

10.16.2 常胜将军求解 345

10.17 新郎和新娘 346

10.17.1 新郎和新娘算法 347

10.17.2 新郎和新娘求解 348

10.18 三色球 349

10.18.1 三色球算法 349

10.18.2 三色球求解 350

10.19 小结 351

第11章 游戏中的算法 352

11.1 洗扑克牌 352

11.1.1 洗扑克牌算法 352

11.1.2 洗扑克牌示例 353

11.2 取火柴游戏 356

11.2.1 取火柴游戏算法 356

11.2.2 取火柴游戏示例 357

11.3 10点半 358

11.3.1 10点半算法 358

11.3.2 10点半游戏示例 363

11.4 生命游戏 368

11.4.1 生命游戏的原理 368

11.4.2 生命游戏的算法 369

11.4.3 生命游戏示例 371

11.5 小结 376

第3篇 算法高级应用篇 378

第12章 密码学算法 378

12.1 密码学概述 378

12.1.1 密码学的发展 378

12.1.2 密码学的基本概念 379

12.1.3 柯克霍夫斯原则 379

12.1.4 经典密码学算法 380

12.2 换位加密解密 381

12.2.1 换位加密解密算法 381

12.2.2 换位加密解密算法示例 383

12.3 替换加密解密 386

12.3.1 替换加密解密算法 386

12.3.2 替换加密解密算法示例 388

12.4 位加密解密 389

12.4.1 位加密解密算法 390

12.4.2 位加密解密算法示例 391

12.5 一次一密加密解密 392

12.5.1 一次一密加密解密算法 392

12.5.2 一次一密加密解密算法示例 394

12.6 小结 396

第13章 压缩与解压缩算法 397

13.1 压缩与解压缩概述 397

13.1.1 压缩与解压缩分类 397

13.1.2 典型的压缩解压缩算法 397

13.2 压缩算法 398

13.3 解压缩算法 401

13.4 压缩/解压缩示例 404

13.5 小结 406

相关图书
作者其它书籍
返回顶部