如何准备软件工程师的算法与数据结构面试——资料篇
准备算法面试,只读经典教材:一门大学公开课和三本大学教材,不收面试速成书。
本文目录
这份清单只收大学讲算法用的经典教材,外加一门大学公开课,不收面试速成书和题单。先把这几本教材读扎实,面试题就不再陌生。
清单一共四项,分两步:先打基础,再把两本经典教材放在手边备查。每一步挑一项就够了。

第一步:一门课或一本教材打好基础
MIT 6.006 Introduction to Algorithms(2020 年春季)。 这门课由 Erik Demaine、Jason Ku 和 Justin Solomon 讲授,MIT OpenCourseWare 公开了课程录像、讲义、习题和考试。没上过算法课,或者算法课已经上了很多年的读者,适合从这门课开始。录像要看,习题也要做。
《Algorithms》第 4 版(Robert Sedgewick、Kevin Wayne)。 这本书的配套网站链接了 Princeton 在 Coursera 上的两门课:Algorithms Part I 和 Part II。Coursera 课程页写明课程的全部功能免费。喜欢边写代码边学的读者,适合用这一套:书和课都用 Java 把每种数据结构实现一遍。
第二步:两本经典教材放在手边备查
《Introduction to Algorithms》第 4 版(Cormen、Leiserson、Rivest、Stein)。 这本书通常简称 CLRS,MIT Press 在 2022 年 4 月 5 日出版了第 4 版。准备面试不必通读 CLRS。上课或者做题遇到没弄懂的地方,再翻到对应章节读证明。
《The Algorithm Design Manual》第 3 版(Steven Skiena)。 Springer 在 2020 年出版了第 3 版。全书第二部分是一份常见算法问题的目录,习题里还收了软件公司的面试题。认得出题型却叫不出名字的时候,就去查这份目录。
这篇文章只谈算法面试。姊妹篇《如何准备软件工程师的系统面试——资料篇》专门谈系统设计面试。
参考来源
- MIT OpenCourseWare — 6.006 Introduction to Algorithms, Spring 2020 — fetched 2026-10-30
- Robert Sedgewick、Kevin Wayne — Algorithms, 4th Edition 配套网站 — fetched 2026-10-30
- Coursera — Algorithms, Part I — fetched 2026-10-30
- The MIT Press — Introduction to Algorithms, Fourth Edition — fetched 2026-10-30
- Springer — The Algorithm Design Manual, third edition — fetched 2026-10-30