这是一个面向 MIT 6.006 Spring 2020 + 数据结构手搓 + OJ 恢复训练 + 国内《数据结构与算法》免修备考 的自学仓库。
主线不是“把视频看完”,而是:
理解概念 → 做 MIT 题 → 手搓数据结构 → OJ 验证 → 阶段考试
采用 MIT 6.006 Spring 2020。
官方资源:
- Course: https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/
- Calendar: https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/pages/calendar/
- Lecture Videos: https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/pages/lecture-videos/
- Lecture Notes: https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/pages/lecture-notes/
- Practice Problems: https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/pages/practice-problems/
- Problem Sets 0–8: https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/pages/assignments/
- Quizzes / Final: https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/pages/quizzes/
额外编程项目可从旧版 MIT 6.006 Fall 2011 选做:
- MIT Problem Set:Python,直接使用官方模板。
- 数据结构从零实现:C++。
- 洛谷 / OJ:C++。
- 后续 CS336:Python + PyTorch。
尤其是 Tree / BST / AVL / Heap / Hash / Graph / Shortest Path:
Lecture
↓
Lecture Notes
↓
Recitation
↓
Problem Session / Practice Problems
↓
Problem Set
↓
C++ 手搓实现
↓
洛谷补充题
基础排序、简单递归、基础 BFS/DFS 可以先看 Notes 和题目;如果能独立完成,再快速浏览或跳过部分 Lecture。
- 能说出数据结构 / 算法的 invariant;
- 能推导主要操作的时间和空间复杂度;
- 能从空文件开始写出核心实现;
- 能说明算法为什么正确;
- 能完成 MIT 对应题和至少 2–5 道 OJ 题。
- STUDY_PLAN.md:完整学习顺序。
- PROBLEM_LIST.md:MIT 题 + 手搓任务 + 洛谷补充题单。
- PROGRESS.md:学习进度打卡。
建议目录:
MIT6.006_zcx/
├── README.md
├── STUDY_PLAN.md
├── PROBLEM_LIST.md
├── PROGRESS.md
├── notes/
├── psets/
├── implementations/
├── oj/
└── projects/
不需要等整个题单刷完。完成 asymptotic analysis、hashing、BST/AVL、heap、BFS/DFS、weighted shortest paths、Bellman–Ford/Dijkstra,并至少独立手搓 BST、Heap、Hash Table、Graph 一次后,就可以开始 CS336,与算法训练并行。