前言

PREFACE

计算机程序设计是信息化进程中最为重要的一个设计手段。一个应用程序往往由编程语言、数据结构和算法组成。其中,算法是整个程序设计的核心。算法代表求解具体问题的手段和方法,可以毫不夸张地说,算法是一切程序设计的灵魂和基础。选择合理的算法,可以起到事半功倍的效果。因此,对于程序员来说,学习和掌握算法是重中之重。

但是,数据结构和算法理论性很强,读者在学习的过程中会感到很枯燥和吃力,往往学习一段时间后便丧失了兴趣,这就使得学习的效率大大降低。如何才能提高读者的学习兴趣,使读者能够快速掌握数据结构和算法的知识呢?其实读者需要的不仅是理论知识,还需要了解这些知识点的代码实现以及应用示例。另外,对知识背景的介绍和理解往往能激发读者学习的兴趣。编者从这些基本点出发,为读者编写了一本可以轻松学习数据结构和算法的参考书。

C/C++是目前最为流行的编程语言之一。本书中所有的算法及示例都是采用C语言进行编写的,因为基本语法相同,所以同时也能在C++环境下运行。但是这些算法并不仅仅局限于C语言。如果读者采用其他编程语言,如C#、VB、Java等,根据其语法格式进行适当的修改也可使用。毕竟算法是核心,C/C++语言是众多语言发展的重要参考,很多语法特点也相同。

本书特色

为了保证读者掌握算法程序设计的核心技术,一开始我们就为本书规划了一些特色,以保证质量和延长生命力。与其他同类书籍相比,本书有如下特色:

● 本书由浅入深、循序渐进地带领读者学习数据结构和算法的知识。

● 本书不仅详细介绍了算法的基础知识和应用,还对常用的加密/解密和数据压缩等高级算法编程技术进行了详细地讲解。

● 本书在讲解每个知识点的同时,均给出了相应的算法原理和算法实现,同时还给出了完整的应用示例,每个示例都可以通过编译执行,使读者可以快速掌握相应的知识点在程序设计中的应用。

● 本书在介绍各个知识点的同时,尽量结合历史背景并给出问题的完整分析,使读者可以了解问题的来龙去脉,避免了代码类书籍的枯燥乏味,增强了图书的易读性。

● 本书对每一个示例的程序代码都进行了详细地注释和分析,并给出了运行结果,使读者在学习时更容易理解。

本书结构

本书以实用性、系统性、完整性和前沿性为特点,详细介绍了算法的基本思想和不同领域的应用示例。本书内容共分4篇17章。

第1篇是算法基础篇,共分为3章,详细介绍了算法和数据结构的相关知识。

第2篇为算法应用篇,共分为8章,详细讲解了算法在排序、查找、数值计算、数论、经典趣题和游戏中的应用。

第3篇为算法面试题篇,共分为4章,详细分析了近几年各大IT公司在逻辑推理测试、数学基础测试、算法及数据结构方面的常见面试题。

第4篇为算法高级应用篇,共分为2章,详细讲解了算法在密码学和数据压缩/解压缩中的应用;为提升图书性价比,本次改版把第4篇的内容放到下载包中供读者学习。

适合的读者

● 系统开发人员;

● C语言程序员;

● 计算机培训班学员;

● 大学、大专等相关专业的学生及老师。

本书结构紧凑,涉及的知识点也比较全面,内容翔实,示例丰富。由于本书内容较多,编写时间仓促,书中如有疏漏或不足之处,恳请广大读者提出宝贵意见,以便进一步改进。

即扫即看视频

我们从录制的讲解视频中精心挑选了39段,根据本书讲解内容的重点程度,将每段视频制作成了即扫即看的二维码,然后嵌入到相对应的章节中,读者在学习本书时,如果遇到理解困难,便可直接扫码观看详细地视频讲解。

附赠整体扫码下载包

在本次改版过程中,为了让图书达到更优性价比,在勘误书中错误的同时,我们增加一个扫码下载包,其中包含以下内容:

● 45讲、超过10小时的精彩讲解视频,精练地分析了C/C++算法的基本理论和在实践中的应用;

● 本书第4篇电子文档;

● 本书中所有程序示例的源代码。

致谢、勘误与支持

一本真正的好书,从策划到出版上市会凝聚很多人行之有效的想法及智慧,它不仅为读者打开一扇学习知识的门,更为读者在书本之外搭建起一条提升能力的阶梯。感谢嵌入式开发工程师陈黎娟女士为本书检查代码做出勘误修订。为了让本书更加完善,读者在学习本书的过程中如果发现有不明白的地方或者有更好的算法和其他建议,欢迎您发送邮件到1057762679@qq.com邮箱和我们交流。

编者

2017年5月