Search the library

Type to search · ↑↓ select · ⏎ open · Esc close

Skip to content
Dandan

DANDAN LEARN / Algorithms

动画图解、一键运行的数据结构与算法

从复杂度、数组、链表、树、图,到排序、搜索、动态规划——每一篇都配动画 + 4 种语言可切换的源码,帮你把算法"看见、跑通、写对"。

22 chapters · 111 articles

Learning goals

Put principles into practice.

  • 理解常用数据结构的组织与操作
  • 分析时间与空间复杂度
  • 练习搜索、排序和动态规划的思路

Who this is for

  • 希望理解数据结构、算法和解题方法的读者

Prerequisites

  • 能阅读一种编程语言;按复杂度、数据结构、算法顺序逐步深入

Contents

22 chapters · 111 articles

Jump to a chapter 22 chapters

序言

1 articles
  1. 自序 · 算法Public foreword

入门与复杂度

13 articles
  1. 关于本书Member article
  2. 如何使用本书Member article
  3. 算法无处不在Member article
  4. 数据结构与算法是什么Member article
  5. 算法效率评估Member article
  6. 迭代与递归Member article
  7. 时间复杂度Member article
  8. 空间复杂度Member article
  9. 数据结构分类Member article
  10. 基本数据类型Member article
  11. 数字编码Member article
  12. 字符编码Member article
  13. 内存与缓存Member article

数组 / 链表 / 列表

3 articles
  1. 数组Member article
  2. 链表Member article
  3. 列表Member article

栈 / 队列 / 双端队列

3 articles
  1. 栈Member article
  2. 队列Member article
  3. 双向队列Member article

哈希表

3 articles
  1. 哈希算法Member article
  2. 哈希冲突Member article
  3. 哈希表Member article

树与堆

8 articles
  1. 二叉树Member article
  2. 二叉树遍历Member article
  3. 二叉树数组表示Member article
  4. 二叉搜索树Member article
  5. AVL 树Member article
  6. 堆Member article
  7. 建堆操作Member article
  8. Top-k 问题Member article

图

3 articles
  1. 图Member article
  2. 图基础操作Member article
  3. 图的遍历Member article

搜索

5 articles
  1. 二分查找Member article
  2. 二分查找插入点Member article
  3. 二分查找边界Member article
  4. 哈希优化策略Member article
  5. 重识搜索算法Member article

排序

10 articles
  1. 排序算法Member article
  2. 冒泡排序Member article
  3. 选择排序Member article
  4. 插入排序Member article
  5. 快速排序Member article
  6. 归并排序Member article
  7. 堆排序Member article
  8. 桶排序Member article
  9. 计数排序Member article
  10. 基数排序Member article

分治

4 articles
  1. 分治算法Member article
  2. 分治搜索策略Member article
  3. 构建二叉树问题Member article
  4. 汉诺塔问题Member article

回溯

4 articles
  1. 回溯算法Member article
  2. 全排列问题Member article
  3. 子集和问题Member article
  4. N 皇后问题Member article

动态规划

6 articles
  1. 初探动态规划Member article
  2. DP 问题特性Member article
  3. DP 解题思路Member article
  4. 0-1 背包问题Member article
  5. 完全背包问题Member article
  6. 编辑距离问题Member article

贪心

4 articles
  1. 贪心算法Member article
  2. 分数背包问题Member article
  3. 最大容量问题Member article
  4. 最大切分乘积问题Member article

附录

3 articles
  1. 编程环境安装Member article
  2. 术语表Member article
  3. 一起参与创作Member article

算法思维系列

7 articles
  1. 二分搜索Member article
  2. 双指针Member article
  3. 滑动窗口Member article
  4. 前缀和与差分Member article
  5. 回溯Member article
  6. BFSMember article
  7. 并查集Member article

数据结构进阶

8 articles
  1. 链表递归Member article
  2. 二叉树思维Member article
  3. 二叉搜索树Member article
  4. 堆与优先队列Member article
  5. 单调栈Member article
  6. 单调队列Member article
  7. 栈 / 队列计算器Member article
  8. 图遍历 / 拓扑 / DijkstraMember article

动态规划专题

6 articles
  1. 子序列问题Member article
  2. 字符串匹配(KMP / 正则)Member article
  3. 股票买卖系列Member article
  4. 打家劫舍系列Member article
  5. 单词接龙 / 字符串塔Member article
  6. 博弈与鸡蛋掉落Member article

高频面试系列

6 articles
  1. LRU 缓存:哈希表 + 双向链表Member article
  2. 链表花招:K 个一组反转 + 判断回文Member article
  3. 岛屿题目:DFS / FloodFill 统一框架Member article
  4. 接雨水 + 盛水容器:双指针对向收缩Member article
  5. 会议室 + 名人问题:扫描线 vs 排除法Member article
  6. 杂项面试技巧:缺失重复 + 随机权重 + 一行智力题Member article

算法思维续 + 高频面试续

7 articles
  1. 位运算技巧(n & (n-1)、a^a=0、位图)Member article
  2. 洗牌算法 + 概率题(Fisher-Yates + 蓄水池采样)Member article
  3. 字符串乘法(竖式 + 大数)Member article
  4. 烧饼 + 花式遍历 + 集合划分Member article
  5. 二分搜索的多种运用Member article
  6. 座位调度 + 打印素数Member article
  7. 子集 / 排列 / 组合三连Member article

数据结构设计 + 高频面试再续

2 articles
  1. 设计 Twitter 时间线:多路有序链表合并 + OO 建模Member article
  2. 名人问题 + 缺失重复 + 按权重随机Member article

DP 进阶:状态优化 + 反向定义 + 元方法论

3 articles
  1. 四键键盘 + 空间压缩:DP 状态与维度的双重优化Member article
  2. 区间调度 + 魔塔:贪心选与反向 DPMember article
  3. DP 思维框架:最优子结构、状态设计、遍历方向Member article

数据结构设计续 + 图论高阶

2 articles
  1. LFU 缓存:双哈希表 + 频次桶的三向同步Member article
  2. 图论高阶:最小生成树 + Bellman-Ford + FloydMember article

Reading and learning support

Forewords are public. Other chapters require access to the column or the whole library.

Overview reviewed on

Learning notes and complete roadmap