本书以程序设计作为基础、数据结构作为工具、五大核心算法作为目标,系统地介绍了算法设计中典型问题的求解过程。全书分成程序设计基础、数据结构和五大核心算法3个部分共10章。第1部分为算法分析与程序设计基础,介绍了算法分析的时间和空间复杂度,以及C++算法相关的程序设计基础;第2部分为算法设计数据结构基础,介绍了线性和非线性数据结构基础,同时对常用的排序和搜索算法作了详细介绍;第3部分为典型算法分析与问题求解,介绍了经典算法设计中的“五虎上将”:分治法、贪心法、动态规划、回溯法和分支限界法。本书可以作为高校及各类培训机构相关课程的教材或参考书,提供全书源代码、软件和授课幻灯片等资料,可以从图书支持网站http://www.gettop.net下载,也可以从出版社网站http://press.bjtu.edu.cn的下载栏目中下载。