跳到主要内容

数据结构与算法总览

这部分不追求把算法题刷成竞赛风格,而是帮助前端工程师建立三个意识:

  • 数据应该用什么结构存
  • 操作一个结构时大概需要多少成本
  • 遇到题目或业务问题时,能不能先选对模型再写代码

推荐阅读顺序

  1. Map / Set
  2. queue / linkList
  3. tree / heap
  4. picture

前端里最常见的使用场景

  • Array:列表渲染、表格数据、排序与筛选
  • Map:按 key 快速查找数据、缓存映射、去重辅助
  • Set:唯一值集合、权限集合、标签集合
  • Queue:任务队列、请求排队、消息消费
  • Linked List:更多用于理解指针变化和链式结构,不常直接在业务里手写
  • Tree:菜单、路由、组织架构、评论回复结构
  • Heap:Top K、优先级任务、调度类问题
  • Graph:依赖关系、节点关系、流程流转

刷题时先想什么

  1. 数据是线性的还是层级的
  2. 需要频繁查找、插入还是排序
  3. 是否需要用额外空间换时间
  4. 能不能把题目先翻译成已知结构

学习建议

  • 不要先背题解,先看为什么这个结构适合这个问题
  • 复杂度至少要有数量级意识,例如 O(1)O(log n)O(n)
  • 前端更应该关注“结构和场景的对应关系”,而不是极限技巧