图书前言

第2版序

让人人拥有程序设计的能力已是从小学到大学各级学校信息教育的重点。算法一直是计算机科学领域重要的基础课程之一。对于有志从事信息技术的专业人员,这更是一门不可或缺的基础理   论课。

市面上有关算法和数据结构的书林林总总,常会长篇累牍地阐述算法理论或是在书上通过举例来说明算法的核心概念。然而,文字再多,不如用一图展示;举例再生动,不如提供实现的源代码。对于第一次接触算法的初学者而言,图解算法加上完整可执行的源代码,有助于每一个人轻松地跨过学习算法的鸿沟。

本书采用丰富的图例来阐述算法的基本概念,将算法进行意简言明的诠释,并辅以丰富的范例程序来实现算法的具体功能。全书从算法的基本概念开始讲解,接着介绍各个经典的算法,包括分治法、递归法、贪心法、动态规划法、迭代法、枚举法、回溯法等;随后讲述核心的数据结构,即数组、链表、堆栈、队列、树结构、图结构、哈希表等;最后展开阐述不同数据结构上实现的排序算法、查找算法、数组和链表相关算法、信息安全基础算法、堆栈和队列相关算法、树结构相关算法、图结构相关算法、人工智能基础算法。

本书的这一次改版调整了第1版的部分章节结构,在各章主题中增加一些第1版没有介绍的算法,同时在第1章加入计算思维的重要概念与实例演练。另外,这次改版还增加了第7章信息安全基础算法与第11章人工智能基础算法,期许这一版的新编排可以更加完善地介绍计算机科学领域的重要算法。

本书使用目前相当热门且易学的Python语言来实现所有的范例,每个范例程序都可以正确执行,书中也提供了各个范例程序的执行结果作为读者的参考,有助读者理解每一个范例程序的执行过程与输出结果。

为了帮助读者检验各章的学习成果,特意搜集了难易适中的习题。这些习题参阅算法与数据结构等各类考试的相关题型,供读者进一步演练算法、加深对算法的理解。一本好的理论图书除了内容完备和专业外,更需要有清楚易懂的架构安排和逻辑清晰的表达方式。在仔细阅读本书之后,相信读者会体会到笔者的用心,也希望读者能对计算机专业这门“基础+核心”的学科有更深入、更完整的认识。

作者敬笔