数据结构与算法

数据结构决定数据如何组织,算法决定如何解决问题。先理解操作的代价,再选择合适的实现。

阅读路径

笔记关注的问题
时间与空间复杂度数据量增大后,运行时间和内存如何变化?
数组、链表、栈与队列不同访问和修改方式,适合什么数据结构?

学习方法

  1. 用一个小规模例子手动执行算法。
  2. 明确输入、输出与边界条件。
  3. 分析主要操作的执行次数和额外空间。
  4. 用空输入、单个元素、重复元素验证思路。
先问为什么

不要只记住复杂度结论。试着说明:为什么每个元素只处理一次,为什么每一步能排除一半候选?

后续方向

在线性结构之后,可以继续学习树与图、查找与排序,以及递归、贪心和动态规划。相关笔记将逐步补充。