本书以算法分析为导向,以算法效率为准绳,着墨于抽象数据类型的选择、使用和组合,从而实现提升算法性能的终极目标,凸显“数据结构要为算法服务”的特色。本书基于抽象数据类型的观点来讲解数据结构,力图让读者学会以“积木式”组件方案快速、便捷、高效地构建程序,并在此基础上以迭代器和区间表示动态集合,给出更具一般性的泛型算法。本书代码采用简洁明晰的现代C++语言描述,尽量吸收最新语言标准,力求紧跟程序设计语言的时代脉搏,并提供了便于维护的在线形式。全书内容组织以标准模板库(STL)为纲,涵盖了常见的数据结构,并给出实际场景中的案例,真正体现学以致用。此外,本书还特别论及各种容器和泛型算法的时空性能,方便读者对设计方案给出渐近分析。
本书由算法领域的知名专家Steven Skiena教授编写,其主要内容包括基本算法设计、算法分析、数据结构、排序与查找、图算法、动态规划以及难解问题与近似算法。 “设计”是本书的核心,作者不但以生动有趣的语言讲授了算法设计中的常用技术与思想,还着重教导我们应从已有经典设计和实现中汲取力量来完成问题求解,而这正是一个优秀算法工作者所必备的素养。为了更全面真实地展现作者的算法设计观,本书每章都给出了若干取自现实案例的精彩War Story,读者可以从中深刻体验到优秀算法设计的曲折历程。为了减轻阅读的难度,作者淡化了繁难的算法分析而仅仅给出性能结论与对比,这在同类算法书中是相当少见的。此外,本书配套网站包含大量算法设计资源以及作者本人的授课视频,为算法设计者提供了极大的便利。