欢迎光临
免费的PDF电子书下载网站

C/C++常用算法手册(第4版) PDF下载

编辑推荐

   精讲学习视频全程相伴,扫码即看;110个有趣实例及精彩分析娓娓道来

内容简介

       计算机技术的发展和普及改变了人们的生活和工作方式,也改变了人们的娱乐方式,其中尤为重要的是计算机编程技术。现代的设计任务大多通过代码编程完成,其中算法起到了至关重要的作用。可以毫不夸张地说,算法是一切程序设计的灵魂和基础。本书知识点覆盖全面、结构安排紧凑、讲解详细、示例丰富。全书对每一个知识点都给出了相应的算法及应用示例(重点章节同时在文中相应位置给出了即扫即看的视频二维码)。虽然这些示例都是以C语言编写的,但是算法并不仅仅局限于C语言。如果读者采用其他编程语言,如C 、C#、VB、Java等,根据其语法格式进行适当的修改也可使用。随书附赠的二维码下载包中包含45讲、超过10小时的C/C 算法讲解视频,让读者所获更超值。

作者简介

    陈黎娟:目前就职于美国胜利通讯北京分公司,职位为Senior Firmware Engineer(高级固件工程师)。先后在SunPlus,SST等公司担任工程师和高级架构工程师。在嵌入式系统、嵌入式接口和底层固件开发方面积累了丰富的经验。

C/C++常用算法手册(第4版) PDF下载

目录

第1 章 算法概述

1.1 什么是算法 ........................................................................................................1

1.2 算法的发展历史和分类 ....................................................................................2

1.3 算法与相关概念的区别 ....................................................................................3

1.3.1 算法和公式的关系 .............................................................................................4

1.3.2 算法与程序的关系 .............................................................................................4

1.3.3 算法与数据结构的关系 .....................................................................................4

1.4 算法是计算机科学的灵魂 ................................................................................5

1.5 算法的表示 ........................................................................................................6

1.5.1 自然语言表示 .....................................................................................................6

1.5.2 流程图表示 .........................................................................................................6

1.5.3 N-S 图表示 ..........................................................................................................8

1.5.4 伪代码表示 .........................................................................................................8

1.6 伪代码与算法程序的对应 ................................................................................9

1.6.1 基本对应规则 .....................................................................................................9

1.6.2 分支结构 ...........................................................................................................10

1.6.3 循环结构 ...........................................................................................................10

1.6.4 数组及函数 .......................................................................................................11

1.7 算法的性能评价 .............................................................................................. 11

1.8 算法实例 ..........................................................................................................12

1.8.1 查找数字 ...........................................................................................................12

实例1-1:在拥有20 个整数数据的数组中查找某个数据 .......................................13

1.8.2 创建项目 ...........................................................................................................14

1.8.3 编译执行 ...........................................................................................................15

1.9 算法的新进展 ..................................................................................................16

1.10 小结:算法是程序设计的灵魂和基础 ........................................................17

第2 章 数据结构

2.1 数据结构概述 ..................................................................................................18

2.1.1 什么是数据结构 ...............................................................................................18

2.1.2 数据结构中的基本概念 ...................................................................................19

2.1.3 数据结构的内容 ...............................................................................................19

2.1.4 数据结构的分类 ...............................................................................................21

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

2.1.6 数据类型 ...........................................................................................................22

2.1.7 常用的数据结构 ...............................................................................................23

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

2.2 线性表 ..............................................................................................................24

2.2.1 什么是线性表 ...................................................................................................24

2.2.2 线性表的基本运算 ...........................................................................................25

2.3 顺序表结构 ......................................................................................................26

2.3.1 准备数据 ...........................................................................................................26

2.3.2 初始化顺序表 ...................................................................................................27

2.3.3 计算顺序表长度 ...............................................................................................27

2.3.4 插入结点 ...........................................................................................................27

2.3.5 追加结点 ...........................................................................................................28

2.3.6 删除结点 ...........................................................................................................28

2.3.7 查找结点 ...........................................................................................................29

2.3.8 显示所有结点 ...................................................................................................29

2.3.9 顺序表操作示例 ...............................................................................................30

实例2-1:对某班级学生学号、姓名和年龄数据进行顺序表操作 .........................30

2.4 链表结构 ..........................................................................................................33

2.4.1 什么是链表结构 ...............................................................................................33

2.4.2 准备数据 ...........................................................................................................34

2.4.3 追加结点 ...........................................................................................................34

2.4.4 插入头结点 .......................................................................................................35

2.4.5 查找结点 ...........................................................................................................36

2.4.6 插入结点 ...........................................................................................................37

2.4.7 删除结点 ...........................................................................................................38

2.4.8 计算链表长度 ...................................................................................................38

2.4.9 显示所有结点 ...................................................................................................39

2.4.10 链表操作示例 .................................................................................................39

实例2-2:使用链表操作实现用户管理 .....................................................................39

2.5 栈结构 ..............................................................................................................43

2.5.1 什么是栈结构 ...................................................................................................43

2.5.2 准备数据 ...........................................................................................................44

2.5.3 初始化栈结构 ...................................................................................................44

2.5.4 判断空栈 ...........................................................................................................45

2.5.5 判断满栈 ...........................................................................................................45

2.5.6 清空栈 ...............................................................................................................45

2.5.7 释放空间 ...........................................................................................................46

2.5.8 入栈 ...................................................................................................................46

2.5.9 出栈 ...................................................................................................................46

2.5.10 读结点数据 .....................................................................................................47

2.5.11 栈结构操作示例 .............................................................................................47

实例2-3:使用栈结构实现学生数据操作 .................................................................47

2.6 队列结构 ..........................................................................................................50

2.6.1 什么是队列结构 ...............................................................................................50

2.6.2 准备数据 ...........................................................................................................50

2.6.3 初始化队列结构 ...............................................................................................51

2.6.4 判断空队列 .......................................................................................................51

2.6.5 判断满队列 .......................................................................................................52

2.6.6 清空队列 ...........................................................................................................52

2.6.7 释放空间 ...........................................................................................................52

2.6.8 入队列 ...............................................................................................................52

2.6.9 出队列 ...............................................................................................................53

2.6.10 读结点数据 .....................................................................................................53

2.6.11 计算队列长度 .................................................................................................54

2.6.12 队列结构操作示例 .........................................................................................54

实例2-4:使用队列结构实现学生数据操作 .............................................................54

2.7 树结构 ..............................................................................................................57

2.7.1 什么是树结构 ...................................................................................................57

2.7.2 树的基本概念 ...................................................................................................58

2.7.3 二叉树 ...............................................................................................................58

2.7.4 准备数据 ...........................................................................................................62

2.7.5 初始化二叉树 ...................................................................................................62

2.7.6 添加结点 ...........................................................................................................63

2.7.7 查找结点 ...........................................................................................................64

2.7.8 获取左子树 .......................................................................................................65

2.7.9 获取右子树 .......................................................................................................65

2.7.10 判断空树 .........................................................................................................65

2.7.11 计算二叉树深度 .............................................................................................66

2.7.12 清空二叉树 .....................................................................................................66

2.7.13 显示结点数据 .................................................................................................66

2.7.14 遍历二叉树 .....................................................................................................67

2.7.15 树结构操作示例 .............................................................................................69

实例2-5:经典二叉树的遍历(4 种遍历方式) ......................................................69

2.8 图结构 ..............................................................................................................71

2.8.1 什么是图结构 ...................................................................................................71

2.8.2 图的基本概念 ...................................................................................................72

2.8.3 准备数据 ...........................................................................................................76

2.8.4 创建图 ...............................................................................................................78

2.8.5 清空图 ...............................................................................................................78

2.8.6 显示图 ...............................................................................................................79

2.8.7 遍历图 ...............................................................................................................79

2.8.8 图结构操作示例 ...............................................................................................80

实例2-6:使用深度优先遍历算法遍历图操作程序 .................................................81

2.9 小结:数据结构 算法= 程序 ......................................................................83

第3 章 基本算法思想

3.1 常用算法思想概述 ..........................................................................................84

3.2 穷举算法思想 ..................................................................................................84

3.2.1 穷举算法基本思想 ...........................................................................................85

3.2.2 穷举算法示例 ...................................................................................................85

实例3-1:鸡兔同笼问题 .............................................................................................85

3.3 递推算法思想 ..................................................................................................87

3.3.1 递推算法基本思想 ...........................................................................................87

3.3.2 递推算法示例 ...................................................................................................87

实例3-2:兔子产仔问题 .............................................................................................87

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 枚假银币 ...................................................91

3.6 概率算法思想 ..................................................................................................95

3.6.1 概率算法基本思想 ...........................................................................................95

3.6.2 概率算法示例 ...................................................................................................95

实例3-5:利用蒙特卡罗算法计算圆周率π ..............................................................95

3.7 贪心算法思想 ..................................................................................................97

3.7.1 贪心算法基本思想 ...........................................................................................97

3.7.2 贪心算法示例 ...................................................................................................98

实例3-6:利用贪心算法思想兑换硬币 .....................................................................98

3.8 小结:思路决定出路 ......................................................................................99

第4章 排序算法

4.1 排序算法概述 ................................................................................................100

4.2 冒泡排序法 ....................................................................................................101

4.2.1 冒泡排序算法 .................................................................................................101

4.2.2 冒泡排序算法示例 .........................................................................................102

实例4-1:对包含10 个数字的整型数组进行排序 .................................................102

4.3 选择排序法 ....................................................................................................104

4.3.1 选择排序算法 .................................................................................................104

4.3.2 选择排序算法示例 .........................................................................................105

实例4-2:对包含10 个数字的整型数组进行排序 .................................................105

4.4 插入排序法 ....................................................................................................106

4.4.1 插入排序算法 .................................................................................................107

4.4.2 插入排序算法示例 .........................................................................................108

实例4-3:对包含10 个数字的整型数组进行排序 .................................................108

4.5 Shell 排序法 ...................................................................................................109

4.5.1 Shell 排序算法 ................................................................................................109

4.5.2 Shell 排序算法示例 ........................................................................................111

实例4-4:对包含10 个数字的整型数组进行排序 .................................................111

4.6 快速排序法 .................................................................................................... 112

4.6.1 快速排序算法 .................................................................................................112

4.6.2 快速排序算法示例 .........................................................................................114

实例4-5:对包含18 个数字的整型数组进行排序 .................................................114

4.7 堆排序法 ........................................................................................................ 116

4.7.1 堆排序算法 .....................................................................................................116

4.7.2 堆排序算法示例 .............................................................................................120

实例4-6:对包含10 个数字的整型数组进行排序 .................................................120

4.8 合并排序法 ....................................................................................................122

4.8.1 合并排序算法 .................................................................................................122

4.8.2 合并排序算法示例 .........................................................................................125

实例4-7:对包含15 个数字的整型数组进行排序 .................................................125

4.9 排序算法的效率 ............................................................................................128

4.10 排序算法的其他应用 ..................................................................................128

4.10.1 反序排序 .......................................................................................................129

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

实例4-8:对包含10 个数字的整型数组进行排序 .................................................129

4.10.3 字符串的排序 ...............................................................................................131

4.10.4 字符串排序示例 ...........................................................................................132

实例4-9:用快速排序算法对包含16 个字母的字符串进行排序 .........................132

4.10.5 字符串数组的排序 .......................................................................................133

4.10.6 字符串数组排序示例 ...................................................................................134

实例4-10:用快速排序算法对包含5 个单词的字符串数组进行排序 .................134

4.11 小结:排序是最基本的算法 ......................................................................136

第5 章 查找算法

5.1 查找算法概述 ................................................................................................137

5.2 顺序查找 ........................................................................................................138

5.2.1 顺序查找算法 .................................................................................................138

5.2.2 顺序查找操作示例 .........................................................................................138

实例5-1:在包含15 个数字的数组中查找第7 个数字 .........................................138

5.3 折半查找 ........................................................................................................140

5.3.1 折半查找算法 .................................................................................................140

5.3.2 折半查找操作示例 .........................................................................................142

实例5-2:在包含15 个数字的数组中查找第11 个数字 .......................................142

5.4 小结:查找是最基本的应用 ........................................................................144

C/C++常用算法手册(第4版) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:C/C++常用算法手册(第4版)