《编程算法新手自学手册》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:管西京等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111367239
  • 页数:445 页
图书介绍:本书循序渐进、由浅入深的详细讲解了C语言算法的核心技术,并通过具体实例的实现过程演练了各个知识点的具体使用流程。全书共11章,第1章简单介绍了算法都基本概念;第2章介绍了9种算法思想;第3章讲解了最简单线性结构的基本知识;第4章讲解层次关系结构的基本知识;第5章讲解了网状关系结构的基本知识;第6章讲解了查找算法的基本知识;第7章讲解了内部排序算法的基本知识;第8章讲解了外部排序和文件的基本知识;第9章讲解了算法在数学领域中的应用过程;第10章讲解了数据结构问题的基本知识;第11章讲解了算法经典问题的解决方案。全书采用故事性、趣味性相结合的对话讲解方式,并穿插了学习技巧和职场生存法则,引领读者成全面掌握C#。

第1章 算法——程序的灵魂 1

1.1了解算法 2

1.1.1算法的特征和发展由来 2

1.1.2为什么是程序的灵魂 2

1.1.3何谓算法 3

1.1.4算法的特性 4

1.2算法的表示方法——流程图 4

1.3算法的另一种表示方法——N-S流程图表示法 6

1.4用计算机语言表示算法 6

1.5算法在编程中的应用 6

1.6总结 8

职场点拨——职场的“算法” 8

第2章9种算法思想 10

2.1枚举算法思想 11

2.1.1枚举算法的特点 11

2.1.2算法思路 11

2.1.3应用实例 11

2.1.4总结 14

2.2递推算法思想 15

2.2.1递推算法的思路 15

2.2.2顺推法实例 15

2.2.3逆推法实例 16

2.3递归算法思想 17

2.3.1递归算法的特点 18

2.3.2递归算法实例 18

2.4分治算法思想 22

2.4.1分治算法的思路 22

2.4.2看一个经典问题——找出假币 23

2.4.3应用实例——大数相乘 23

2.4.4应用实例——世界杯比赛日程安排 27

2.5贪心算法思想 29

2.5.1贪心算法的思路 29

2.5.2应用实例——装箱问题 30

2.5.3应用实例——找零方案 33

2.6试探法算法思想 34

2.6.1试探法算法的思路 35

2.6.2应用实例——八皇后问题 35

2.6.3应用实例——彩票组合 37

2.7动态规划算法 38

2.7.1动态规划算法的思路 39

2.7.2应用实例 39

2.8迭代算法思想 41

2.8.1迭代算法的思路 42

2.8.2应用实例 42

2.9模拟算法思想 43

2.9.1模拟算法的思路 43

2.9.2应用实例——猜数游戏 44

2.9.3应用实例——掷骰子游戏 45

2.10最后做一个评价 46

2.10.1算法优劣标准 46

2.10.2算法效率的衡量方法 47

职场点拨——程序员面试面面观 48

第3章 最简单的线性结构 50

3.1线性表 50

3.1.1线性表的特性 51

3.1.2顺序表的基本操作实现 52

3.1.3链表基本操作实现 59

3.2先进先出的结构——队列 65

3.2.1队列简介 65

3.2.2队列的抽象数据类型定义 66

3.2.3链队列和循环队列 67

3.2.4队列的基本操作 67

3.2.5队列的链式存储 68

3.2.6应用实例——电信排号程序 73

3.3后进先出的结构——栈 75

3.3.1什么是栈 75

3.3.2栈的基本操作 76

3.3.3应用实例 79

职场点拨——同事相处之道 82

第4章 层次关系结构——树 84

4.1基本概念 84

4.1.1树的定义 85

4.1.2树的相关术语 85

4.1.3树的基本操作概况 86

4.2二叉树 87

4.2.1二叉树的定义 87

4.2.2二叉树的性质 88

4.3二叉树的存储 88

4.3.1顺序存储结构 88

4.3.2链式存储结构 90

4.3.3二叉树操作 91

4.3.4二叉树遍历 94

4.3.5使用二叉树 98

4.4线索二叉树 101

4.4.1线索二叉树的表示 101

4.4.2线索二叉树的操作 104

4.5最优二叉树——赫夫曼树 109

4.5.1几个相关概念 109

4.5.2构造赫夫曼树的过程 110

4.5.3赫夫曼编码 111

职场点拨——谈职业素养 117

第5章 网状关系结构——图 118

5.1图的定义 118

5.2图的几个概念 119

5.3图的存储结构 123

5.3.1邻接矩阵 123

5.3.2邻接表 124

5.3.3十字链表 127

5.3.4创建图 128

5.4图的遍历 133

5.4.1深度优先搜索 133

5.4.2广度优先搜索 136

5.4.3遍历算法的常见应用 140

5.4.4测试图遍历实例 142

5.5图的连通性问题 143

5.5.1无向图的连通分量 143

5.5.2最小生成树 143

5.5.3关键路径 147

5.6最短路径 152

5.6.1求某一顶点到其他各顶点的最短路径 152

5.6.2求任意一对顶点间的最短路径 156

职场点拨——和领导相处 158

第6章 常用算法——查找 160

6.1查找的基本概念 160

6.2基于线性表的查找法 161

6.2.1顺序查找法 161

6.2.2折半查找法 165

6.2.3分块查找法 167

6.3基于树的查找法 168

6.3.1二叉排序树 168

6.3.2平衡二叉排序树 180

6.4计算式查找法——散列法 186

6.4.1散列函数的构造方法 187

6.4.2处理冲突的方法 188

6.4.3散列表的查找过程 190

6.4.4散列法性能分析 191

6.5索引查找 195

6.5.1索引查找基础 195

6.5.2索引查找算法的应用 195

职场点拨——寻兼职 199

第7章 常用算法——内部排序 200

7.1排序基础 200

7.2插入类排序 202

7.2.1直接插入排序 202

7.2.2折半插入排序 205

7.2.3表插入排序 206

7.2.4希尔排序 206

7.3交换类排序法 209

7.3.1冒泡排序(相邻比序法) 209

7.3.2快速排序 213

7.4选择类排序法 217

7.4.1直接选择排序(Straight Selection Sort) 217

7.4.2树形选择排序 219

7.4.3堆排序 220

7.5归并排序 225

7.5.1归并排序思想 225

7.5.2二路归并算法 226

7.5.3归并排序的实现方法 228

7.6各种排序方法的综合比较 231

职场点拨——兼职可靠吗? 232

第8章 外部排序和文件 234

8.1外存信息的特性 235

8.1.1磁带存储器 235

8.1.2磁盘存储器 236

8.2外排序的基本方法 237

8.2.1磁盘排序 237

8.2.2磁带排序 241

8.3文件的基本概念 243

8.3.1文件中的常用基本概念 244

8.3.2文件的有关操作 244

8.4文件的组织方式 245

8.4.1顺序文件 245

8.4.2索引文件 245

8.4.3 ISAM文件 246

8.4.4 VSAM文件 248

8.4.5散列文件 249

8.4.6多关键字文件 250

职场点拨——换工作的注意事项 250

第9章 算法在数学领域中的应用 252

9.1求两个数的最大公约数和最小公倍数 252

9.2哥德巴赫猜想的近似证明 254

9.3三色球问题 257

9.4百钱买百鸡问题 258

9.5完全数 260

9.6亲密数 262

9.7水仙花数 264

9.8自守数 264

9.9素数 266

9.9.1求素数 266

9.9.2回文素数 268

9.9.3平方回文数 269

9.10阶乘 270

9.10.1递归计算阶乘 270

9.10.2大数的阶乘 272

9.11新郎和新娘的问题 281

9.12年龄几何 283

9.13三色球问题 284

9.14马克思手稿中的数学题 285

9.15正整数分解质因数 286

9.16方程求解 287

9.16.1求解线性方程组介绍 287

9.16.2求解非线性方程组介绍 288

9.16.3高斯消元法求解线性方程组 288

9.16.4二分法解非线性方程 293

9.16.5牛顿迭代法解非线性方程 295

9.17矩阵运算 297

9.18孪生素数 301

9.18.1孪生素数介绍 301

9.18.2求解孪生素数 302

9.19一元多项式运算 303

9.19.1编程实现一元多项式的加法运算 303

9.19.2编程实现一元多项式的减法运算 308

职场点拨——谈学习方法 318

第10章 数据结构问题 319

10.1约瑟夫环 320

10.2大整数运算 323

10.2.1用数组实现大整数运算 323

10.2.2用链表实现大整数运算 333

10.3计算机进制转换 339

10.4中序表达式转换为后序表达式 344

职场点拨——团队成员的素质 349

第11章 算法的经典问题 350

11.1存钱利息最大化 351

11.2歌星大奖赛 354

11.3借书方案知多少 355

11.4打鱼还是晒网 356

11.5捕鱼和分鱼 357

11.6出售金鱼 358

11.7平分七筐鱼 359

11.8绳子的长度和井深 361

11.9鸡兔同笼 362

11.10汉诺塔 363

11.10.1递归法 364

11.10.2非递归法 365

11.11背包问题 368

11.11.1动态规划法 368

11.11.2递归法 375

11.12马踏棋盘 378

11.12.1循环查找 378

11.12.2递归法实现 382

11.12.3栈实现 384

11.13八皇后问题 388

11.13.1递归法 389

11.13.2循环法 391

11.14农夫过河 394

11.15 青蛙过河 397

11.16三色旗 401

11.17取石子 403

11.18生命游戏 407

11.19黑白棋问题 412

11.20停车场管理 422

11.21约瑟夫生者死者游戏 432

11.22骑士迷宫问题 435

职场点拨——谈升职 444