《算法》基于伊利诺伊大学厄巴纳 - 香槟分校的计算机科学教授 Jeff Erickson 为多个算法课程写的讲义集合,这本教科书已经在伊利诺伊大学厄巴纳 - 香槟分校出版,自 1999 年 1 月以来 Jeff Erickson 每年都会使用这本书教授一次算法课程。由于本科理论课程的变化,Jeff Erickson 在 2016 年对讲义进行了重大修订;本书是 Erickson 教授修订的最基础课程材料的一部分,主要反映了新的初级理论课程的算法内容。
书籍开源主页:http://jeffe.cs.illinois.edu/teaching/algorithms/
Erickson 教授在伊利诺伊州教授的算法课程有两个重要的先决条件:离散数学课程和基础数据结构课程。因此,这本教科书可能不适合大多数学生作为数据结构和算法的第一门课程。特别是,Erickson 教授假设至少熟悉以下特定主题:离散数学、证明技巧、迭代编程概念、基础抽象数据类型、基础数据结构、基础算法、基本算法分析、数学能力成熟度。
关于此书的其它信息:
Erickson 教授打算在近期将这本书自印出版,但不用担心,出版后这个资源也仍然是免费的。 Erickson 教授有一个维护多年的 GitHub 项目,专门为这本书做 Bug 追踪。 Erickson 教授明确表示,欢迎任何人下载电子版或纸质打印,使用、复制和/或分发此页面上的任何内容都是允许的。 这本书基于两门课程,分别是 CS 374 (Spring 2018) 和 CS 473 (Spring 2017),Erickson 还在另一个页面上提供了课程作业和测试。
GitHub 地址:https://github.com/jeffgerickson/algorithms 作业地址:http://jeffe.cs.illinois.edu/teaching/algorithms/hwex.html
Jeff 提供了很多课程资料,包括 CS374 的 PPT、本书没有涉及的 CS 473 主题以及形式化语言的一些课件。这些资源有的有独到的见解,但笔记仍然不会有教科书那么精炼,读者可在教程主页找到这些额外的课程资源。