算法趣学(第2版)

英昌盛 等
内容简介 本书系统介绍程序设计中各种常用的基础算法及典型案例,包括排序算法、递归算法、数论基础、组合数学基础、贪心算法、分治算法、动态规划算法和回溯算法等内容。 全书以图文并茂的方式讲解各基础算法的分析过程,侧重基础算法的深入理解与实践,配有大量图表辅助算法的分析过程,适用于有一定程序设计基础、尚未学习数据结构且对算法分析与设计感兴趣的算法初学者。 本书各章均配有典型案例和大量图表,既便于教师课堂讲授,也适合读者自学,可作为高等院校“程序设计基础”课程的延伸和“算法分析与设计”课程的入门教材,也可供程序设计竞赛初学者参考。 前言 “算法分析与设计”的课程目标是培养运用数学思维和计算思维分析问题与应用所学专业知识解决问题的能力。通过对基础理论和典型案例的学习,读者能够掌握算法设计的方法和技巧,为后续数据结构等相关课程的学习及参加各类学科竞赛奠定基础。 在学习本书内容之前,读者应具备一定的编程基础,能够熟练运用C、C++、Java、Python等至少一门编程语言,无须具备数据结构基础知识。本书是程序设计基础和算法分析与设计之间的过渡,为刚刚学习过程序设计基础的算法入门者量身定制。 本书的主要特点是算法知识“基础化”和分析过程“图表化”,只要求读者具备程序设计基础知识,重在兴趣与入门,不涉及艰深晦涩的内容。以图表方式给出算法的动态分析过程,使读者能够真正理解和掌握算法的本质,能够根据实际工作设计和优化算法。 全书由9章构成,各章具体内容如下。 第1章:环境搭建。主要介绍Windows操作系统下学习环境的搭建及注意事项。 第2章:排序算法。介绍冒泡排序、选择排序、插入排序和计数排序等常见排序算法。 第3章:递归算法。分析递归算法的本质特征,并通过递归算法求解汉诺塔、全排列、因数分解和分形图形问题。 第4章:数论基础。介绍数论的基本概念及性质,分析素数和同余两类典型的数论基础问…