Preface
前言
在大学期间刷算法题的时候,遇到很多题目要么太简单,要么怎么也想不出办法。 这时因为没有真正理解算法,只会套用各种模型,题目稍微改变就搞不定了。 我当时收集了各种关于算法的文档、资料和源码,整理、分类,还写了很多自己的理解,放在github项目中,就是本书的原型。 后来又尝试加入了数学公式、插图和C++源码,把这些东西通过gitbook的形式展示出来。就成了目前的样子。
将算法和数据结构图形化、公式化可以更准确、更清晰的描述问题、解决方案和算法的时间/空间复杂度。 真正把算法背后的数学模型讲明白,让读者理解。 除此以外,本书对种类繁多的算法进行了细致的分类,每一章专门讲一类问题,其中每个小节专门讲解该类问题的一个分支或变种。 从目录就可以看出各个算法之间的联系和变化。通读整章之后更能够加深学习。
本书的所有算法都有C++实现和测试,配套辅助的运行脚本,可以在主流的Windows、Linux、MacOS系统上运行。 一些章节还会介绍相对小众的专业知识、参考资料和leetcode题目,多维度的提供优质资料。
由于个人经验有限,难免存在一些疏漏和错误的地方,还请指正。 读者的支持是这个项目更新的动力,欢迎大家增加更多的内容,和对已有的文档、代码进行修正。
特别感谢以下同学参与项目:
如果你想参与,编写文档时尽量与本书风格保持一致,推荐使用我的开发工具:
西安交通大学计算机系
林荣彬
2014年2月16日