《C语言常用算法分析》是2012年1月清华大学出版社出版的图书,作者是明日科技。本书内容详尽,实例丰富,非常适合作为零基础人员的学习用书和大中专院校师生的学习教材,也适合作为相关培训机构的师生和软体开发人员的参考资料。
基本介绍
- 书名C语言常用算法分析
- 作者明日科技
- ISBN9787302276654
- 定价39.8元
- 出版社清华大学出版社
- 出版时间2012年1月
- 装帧平装
- 印次1-1
内容简介
本书共分为4篇,第1篇为算法基础篇,包括程式之魂——算法、数据结构基础、查找与排序算法、基本算法思想等内容;第2篇为常用算法篇,包括数学算法、矩阵与数组问题、经典算法等内容;第3篇为趣味算法篇,包括数学趣题、逻辑推理题等内容;第4篇为算法竞技篇,包括计算机等级考试算法实例、程式设计师考试算法实例、信息学奥赛算法实例等内容。
本书提供了大量的自学视频、源程式、素材,提供了相关的模组库、案例库、素材库、题库等多种形式的辅助学习资料,还提供迅速及时的微博、QQ、论坛等技术支持。
目录
第1篇 算法基础篇
第1章 程式之魂——算法
( 自学视频、源程式
配套资源\mr\01\) 2
1.1 魂之说 3
1.2 算法的特性 4
1.3 算法的表示方式 5
1.3.1 用自然语言描述算法 5
1.3.2 用流程图描述算法 5
1.3.3 用N-S图描述算法 8
1.3.4 用计算机语言描述算法 9
1.4 算法性能分析与度量 10
1.4.1 算法的性能指标 10
1.4.2 算法效率的度量 10
1.4.3 算法的时间複杂度 11
1.4.4 算法的空间複杂度 12
1.5 学习算法的原因 12
第2章 数据结构基础
( 自学视频、源程式
配套资源\mr\02\) 13
2.1 数据结构概述 14
2.1.1 数据结构的发展 14
2.1.2 数据结构的研究对象 14
2.1.3 数据结构与算法的关係 16
2.2 数据结构的基本概念 16
2.3 C语言常见数据结构 18
2.3.1 数组 18
2.3.2 结构体 20
2.3.3 鍊表 21
2.3.4 栈 23
2.3.5 伫列 24
第3章 查找与排序算法
( 自学视频、源程式
配套资源\mr\03\) 26
3.1 查找算法 27
3.1.1 顺序查找 27
3.1.2 折半查找 29
3.1.3 分块查找 31
3.1.4 哈希查找 33
3.2 排序算法 38
3.2.1 选择排序 38
3.2.2 冒泡排序 40
3.2.3 直接插入排序 43
3.2.4 归併排序 45
3.2.5 希尔排序 48
3.2.6 快速排序 49
3.2.7 各种排序算法的比较 52
第4章 基本算法思想
( 自学视频、源程式
配套资源\mr\04\) 54
4.1 递归的概念和分治法 55
4.1.1 递归的概念 55
4.1.2 递归的套用——汉诺塔 55
4.1.3 分治法的基本思想 56
4.1.4 分治法的套用——棋盘覆盖
问题 57
4.2 动态规划法 59
4.2.1 动态规划法的基本思想 59
4.2.2 动态规划的套用——最大
子段和 60
4.3 贪心算法 61
4.3.1 贪心算法的基本概念 61
4.3.2 贪心算法的套用——哈夫
曼编码 62
4.4 回溯法 67
4.4.1 回溯法的基本思想 67
4.4.2 回溯法的套用——连续
邮资问题 68
4.5 分支限界法 70
4.5.1 分支限界法的基本思想 71
4.5.2 分支限界法的套用——旅行
售货员问题 71
第2篇 常用算法篇
第5章 数学算法
( 自学视频、源程式
配套资源\mr\05\) 76
5.1 随机数求π 77
5.2 常态分配的成绩 82
5.3 绘製最小圆 86
5.4 满意的一元二次方程解 93
5.5 计算定积分 101
5.6 分解质因数 103
5.7 最大公约数和最低公倍数 106
5.8 数字的全排列 109
5.9 递推化梯形法求解定积分 111
5.10 叠代法开平方运算 115
5.11 牛顿切线法解方程 117
5.12 改进欧拉方法求解微分方程 119
5.13 叠代法求解线性方程组 123
5.14 计算贷款利息 127
5.15 分数计算器 129
第6章 矩阵与数组问题
( 自学视频、源程式
配套资源\mr\06\) 132
6.1 “脱壳”组数 133
6.2 寻找矩阵中的“鞍点” 135
6.3 魔幻方阵 137
6.4 矩阵的转置运算 139
6.5 勾股数组 141
6.6 百灯判熄 143
6.7 巧排螺旋数阵 144
6.8 猜数四问 146
第7章 经典算法
( 自学视频、源程式
配套资源\mr\07\) 149
7.1 约瑟夫环 150
7.2 八皇后问题 152
7.3 0-1背包问题 156
7.4 斐波那契数列 159
7.5 寻找水仙花数 161
7.6 爱因斯坦阶梯问题 162
7.7 进制转换算法 163
7.8 哥德巴赫猜想 165
7.9 验证四方定理 167
7.10 尼科彻斯定理 168
7.11 角谷猜想 170
7.12 prim算法求最小生成树 171
7.13 迪杰斯特拉算法 174
第3篇 趣味算法篇
第8章 数学趣题
( 自学视频、源程式
配套资源\mr\08\) 178
8.1 警察抓犯人 179
8.2 舍罕王的失算 181
8.3 百钱买百鸡问题 183
8.4 三色球问题 185
8.5 填数字游戏 187
8.6 渔夫捕鱼问题 190
8.7 移数字游戏 191
8.8 数字翻译器 194
8.9 猴子吃桃问题 198
8.10 马克思手稿中的数学题 199
8.11 判断回文式素数 200
8.12 完全数 204
8.13 自守数 206
8.14 一数三平方数 207
8.15 古稀数 209
8.16 亲和数 213
8.17 对调数 215
第9章 逻辑推理题
( 自学视频、源程式
配套资源\mr\09\) 218
9.1 魔术师的秘密 219
9.2 婚礼上的谎言 220
9.3 谁讲了真话 222
9.4 白纸与黑纸 223
9.5 判断坏球 224
9.6 打渔晒网问题 229
9.7 水池注水问题 231
9.8 寻找假币 232
9.9 常胜将军 234
9.10 巧算国王分财物 236
9.11 商人渡河问题 237
9.12 马踏棋盘 243
9.13 猜杏核 246
第4篇 算法竞技篇
第10章 计算机等级考试算法实例
( 自学视频、源程式
配套资源\mr\10\) 250
10.1 数组的下三角置数 251
10.2 查找单鍊表的结点 252
10.3 二维数组的元素排序 254
10.4 寻找二维数组的最大值 256
第11章 程式设计师考试算法实例
( 自学视频、源程式
配套资源\mr\11\) 258
11.1 电话计费算法 259
11.2 处理鍊表的重複元素 261
11.3 剧场方形空位 263
11.4 数组的数值操作 265
11.5 三位数生成迴文数 267
第12章 信息学奥赛算法实例
( 自学视频、源程式
配套资源\mr\12\) 269
12.1 我知你心 270
12.2 格雷码 272
12.3 狡猾的狐狸遇上聪明的兔子 275
12.4 6174问题 276
12.5 韩信点兵 279
12.6 杨辉三角 281
12.7 开关灯问题 284
12.8 蛇形方阵 286
前言
算法被称为程式设计的灵魂,也是学习编程的必备知识,被许多高等院校计算机专业列为必修课程。一个优秀的程式需要合理的数组组织和高效清晰的算法,这也是程式设计要研究的主要内容。
本书内容
本书根据算法学习的步骤编排章节。全书共分为4篇,第1篇为算法基础篇,介绍了学习算法需要掌握的一些基础知识,包括程式之魂——算法、数据结构基础、查找和排序方法、基本算法思想等部分;第2篇为常用算法篇,列举了在编程中经常用到的一些算法,使读者了解一些常用算法的实现方法,包括数学算法、矩阵与数组问题、经典算法等算法;第3篇为趣味算法篇,列举了一些经典的趣味算法,能够激起大家的学习兴趣,在趣味中掌握算法精髓,包括数学趣题、逻辑推理题等算法;第4篇为算法竞技篇,通过不同的类型的算法实例使大家了解实战算法,包括计算机等级考试算法实例、程式设计师考试算法实例、信息学奥赛算法实例等内容。
为了更清晰地阐述算法和给出算法的设计思路,本书设定了以下栏目
? 算法说明
对算法的具体要求和实现的功能进行说明。
? 算法分析
根据算法要求及要实现的功能进行分析,详细介绍实现的思路和方法。
? 实现过程
通过程式来实现算法,给出具体的实现过程和实现算法的完整代码。
本书特点
本书具有以下特点。
循序渐进
本书从算法基础讲起,介绍算法的基本知识和常用的算法思想,逐层深入,由浅入深。
举例丰富
列举了程式设计和套用中的常用算法,使读者能够通过各种算法的学习而掌握实际开发的思路。
趣味实用
本书专门添加了趣味算法篇,列举生活中的一些趣味算法,使读者能够更有兴趣地学习,在娱乐中进步。
竞技实战
本书添加了各种计算机考试的算法实例,使读者在实战中提升。
本书配套资源
本书提供了内容丰富的配套资源,包括自学视频、源程式、素材,以及模组库、案例库、题库、素材库等多项辅助内容,读者朋友可以通过如下方式获取。
第1种方式
(1)登录清华大学出版社的网站,在网页右上角的搜寻文本框中输入本书书名(注意区分大小写和留出空格),或者输入本书关键字,或者输入本书ISBN号(注意去掉ISBN号间隔线“-”),单击“搜寻”按钮。
(2)找到本书后单击超连结,在该书的网页下侧单击“网路资源”超连结,即可下载。
第2种方式
访问本书的新浪微博C语言图书,找到配套资源的连结地址进行下载。
配套资源目录如下图所示。
读者对象
本书非常适合以下人员阅读。
? 从事编程行业的开发人员
? 有一定语言基础,想进一步提高技能的人员
? 大中专院校的老师和学生
? 即将走上工作岗位的大学毕业生
? 相关培训机构的老师和学员
? 编程爱好者