数据结构与算法之美(王争)

书: https://pan.baidu.com/s/1untyKaWXt7RJt7udfaVI6A?pwd=44y8
笔记如下:

  1. 复杂度分析:详解时间/空间复杂度(大O表示法),比较最优/最差/平均时间复杂度。
  2. 数组与链表:内存结构对比,实现LRU缓存淘汰算法,解决约瑟夫环问题。
  3. 栈与队列:用栈实现表达式求值,双端队列解决滑动窗口最大值问题。
  4. 递归思想:剖析递归树,避免重复计算(斐波那契数列的备忘录优化)。
  5. 排序算法:对比快排(分治)、堆排序(堆结构)与归并排序(稳定性)的适用场景。
  6. 二分查找:变形问题(查找边界、旋转数组搜索)与“十个二分九个错”的陷阱。
  7. 跳表(Skip List):Redis有序集合的实现原理,空间换时间的设计哲学。
  8. 散列表:哈希冲突解决(开放寻址vs链地址法),工业级HashMap实现要点。
  9. 二叉树:前/中/后序的非递归遍历,二叉搜索树的增删查操作。
  10. 堆与优先队列:Top K问题解决方案,定时任务调度中的堆应用。
  11. 图论基础:DFS/BFS遍历,Dijkstra与A*算法解决最短路径问题。
  12. 字符串匹配:KMP算法next数组推导,Trie树实现敏感词过滤。
  13. 贪心算法:霍夫曼编码、区间调度问题中的局部最优选择。
  14. 分治策略:逆序对统计、最近点对问题的分治解法。
  15. 回溯法:N皇后、数独求解的剪枝优化技巧。
  16. 动态规划:0-1背包、编辑距离问题的状态转移方程设计。
  17. 位运算:布隆过滤器实现、二进制中1的计数技巧(n & (n-1))。
  18. 高级数据结构
    • B+树:数据库索引的磁盘友好设计
    • LSM树:HBase日志合并存储结构
    • 倒排索引:搜索引擎核心原理
  19. 算法优化思维:空间换时间(哈希)、预处理(前缀和)、双指针(快慢指针)等范式。
  20. 实战场景
    • Redis:跳表+哈希的混合存储
    • Kafka:时间轮定时器算法
    • Git:Diff算法的LCS实现

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注