本书编者倡导“自主编程”,以问题解决为主线,致力于提升读者的计算思维与编程技能,引导读者科学地学习算法。全书共分为四章:第一章重点阐述数据抽象的方法及如何选择合适的数据结构,并介绍线性数据结构的基本应用;第二章通过生动的例子,详述了模拟、解析和贪心这三种策略,展示了如何结合严密的算法逻辑与实际操作经验来解决问题;第三章则以深入浅出的方式,讲解了“大化小”的思维方式,介绍了如何利用递推、分治和动态规划等算法来简化和解决复杂问题;第四章全面剖析了好算法的标准,并详细介绍了优化算法时间复杂度和空间复杂度的常用技巧。 本书可以作为数据结构和算法入门的培训教材,也可以作为准备参加全国信息学奥林匹克竞赛的学生赛前集训用书,还可以作为有一定编程语言基础的算法爱好者的参考书籍。