前言 近几年,在校学生以及在职者对与算法相关的知识越来越重视,但现有的针对初学者的算法书籍却不多。本书根据算法的相关知识由浅入深地进行介绍,提供了大量目前比较主流类型的题目并对其进行解析。题目侧重基础,浅显易懂,适合不同水平的读者学习。 作为大学计算机类专业的教师,我们一直坚持认为学习的目的不仅仅是获取知识,更重要的是具备分析问题和解决问题的能力。而算法是程序设计的灵魂,算法的选择则代表着用程序设计解决具体问题的能力,因此算法的优劣决定了用程序解决问题的效率。 算法设计是算法思维的体现,算法运用不好的程序员,很难说是一名好的程序员。计算机类专业人才理应具有一定的算法功底,拥有一定的算法思维,并且能利用这些思想有效地转换为解决程序设计问题的能力。因此,本书特别强调算法实践,通过对具体的例题、程序的算法解析,讲解程序设计的思路和具体实现,并配有大量的课后习题以供练习。 本书依次讲述程序设计基础、算法基础、排序、查找、搜索、字符串匹配、图论、动态规划、高级数据结构、数论、组合数学、计算几何基础、博弈论。 本书不仅讲解这些算法的基本原理,还结合具体案例详细介绍这些算法的应用。本书涉及的程序设计问题将充分锻炼读者的思维能力和动手能力,有助于读者形成全面、灵活、缜密的思考习惯,从而提升读者解决未知问题的能力。 算法思想博大精深,而作者时间和能力有限,书中难免有遗漏或不足之处,望读者海涵并不吝赐教。 作者 2023年2月