- 30240184_01 概论
- 30240184_01-A-1 计算
- 30240184_01-A-2 算法有穷性
- 30240184_01-A-3 好算法
- 30240184_01-B-1 计算模型
- 30240184_01-B-2 图灵机
- 30240184_01-B-3 RAM
- 30240184_01-C-1 大O
- 30240184_01-C-2 bigΩ、bigΘ
- 30240184_01-C-3 复杂度总结
- 30240184_01-D-1 算法分析
- 30240184_01-D-2 级数
- 30240184_01-D-3 循环与级数
- 30240184_01-D-4 取非极端元素、冒泡排序
- 30240184_01-D-5 起泡排序的分析
- 30240184_01-D-6 封底估算
- 30240184_01-D-7 封底估算实例
- 30240184_01-E-1 迭代和递归
- 30240184_01-E-2 减而治之
- 30240184_01-E-3 递归跟踪 递推方程
- 30240184_01-E-4 例-数组倒置
- 30240184_01-E-5 分而治之
- 30240184_01-E-6 例-数组求和-二分递归
- 30240184_01-E-7 例-MAX2
- 30240184_01-F-1 动态规划
- 30240184_01-F-2 FIB()递推方程
- 30240184_01-F-3 FIB()封底估算
- 30240184_01-F-4 fib()递归跟踪
- 30240184_01-F-5 FIB()回归迭代
- 30240184_01-F-6 最长公共子序列
- 30240184_01-F-7 递归LCS
- 30240184_01-F-8 理解LCS
- 30240184_01-F-9 动态规划LCS
- 30240184_02-A-1 接口与实现
- 30240184_02-A-2 向量ADT
- 30240184_02-A-3 操作实例
- 30240184_02-A-4 构造与析构
- 30240184_02-A-5 复制
- 30240184_02-B-1 可扩充向量
- 30240184_02-B-2 动态空间管理
- 30240184_02-B-3 递增式扩容
- 30240184_02-B-4 加倍式扩容
- 30240184_02-B-5 分摊复杂度
- 30240184_02-C-1 无序向量
- 30240184_02-C-2 循秩访问
- 30240184_02-C-3 插入
- 30240184_02-C-4 区间删除
- 30240184_02-C-5 查找
- 30240184_02-C-6 单元素删除
- 30240184_02-C-7 唯一化
- 30240184_02-C-8 遍历
- 30240184_02-D1-1 有序向量-有序性
- 30240184_02-D1-2 唯一化(低效版)
- 30240184_02-D1-3 复杂度(低效版)
- 30240184_02-D1-4 唯一化(高效版)
- 30240184_02-D1-5 实例与分析(高效版)
- 30240184_02-D2-1 二分查找概述
- 30240184_02-D2-2 接口
- 30240184_02-D2-3 语义
- 30240184_02-D2-4 原理
- 30240184_02-D2-5 实现
- 30240184_02-D2-6 实例
- 30240184_02-D2-7 查找长度
- 30240184_02-D3-1 fib查找构思
- 30240184_02-D3-2 fib查找实例查找长度
- 30240184_02-D3-3 fib查找实现
- 30240184_02-D3-4 fib查找最优性
- 30240184_02-D4-1 二分查找改进构思
- 30240184_02-D4-2 二分改版本B
- 30240184_02-D4-3 二分改语义
- 30240184_02-D4-4 二分改版本c
- 30240184_02-D4-5 二分改正确性
- 30240184_02-E-1 冒泡排序构思
- 30240184_02-E-2 改进
- 30240184_02-E-3 反例
- 30240184_02-E-4 再改进
- 30240184_02-E-5 综合评价
- 30240184_02-F-1 归并排序构思
- 30240184_02-F-2 主算法
- 30240184_02-F-3 二路归并·实例
- 30240184_02-F-4 二路归并·实现
- 30240184_02-F-5 二路归并·正确性
- 30240184_02-F-6 性能分析
- 30240184_03-A-1 从静态到动态
- 30240184_03-A-2 从向量到列表
- 30240184_03-A-3 从秩到位置
- 30240184_03-A-4 实现
- 30240184_03-B-1 循秩访问
- 30240184_03-B-2 查找
- 30240184_03-B-3 插入和复制
- 30240184_03-B-4 删除与析构
- 30240184_03-B-5 唯一化
- 30240184_03-C-1 有序列表唯一化·构思
- 30240184_03-C-2 唯一化·实现
- 30240184_03-C-3 查找
- 30240184_03-D-1 选择排序
- 30240184_03-D-2 实例
- 30240184_03-D-3 实例
- 30240184_03-D-4 推敲
- 30240184_03-D-5 selectMax()
- 30240184_03-D-6 性能
- 30240184_03-E-1 插入排序
- 30240184_03-E-2 构思
- 30240184_03-E-3 对比
- 30240184_03-E-4 实例
- 30240184_03-E-5 实现
- 30240184_03-E-6 性能分析
- 30240184_03-E-7 平均性能
- 30240184_03-E-8 逆序对
- 30240184_04-A-1 栈
- 30240184_04-A-2 实例
- 30240184_04-A-3 实现
- 30240184_04-C1-1 进制转换应用
- 30240184_04-C1-2 算法
- 30240184_04-C1-3 实现
- 30240184_04-C2-1 括号匹配实例
- 30240184_04-C2-2 尝试
- 30240184_04-C2-3 构思
- 30240184_04-C2-4 实现
- 30240184_04-C2-5 反思
- 30240184_04-C2-6 拓展
- 30240184_04-C3-1 栈混洗
- 30240184_04-C3-2 计数
- 30240184_04-C3-3 甄别
- 30240184_04-C3-4 算法
- 30240184_04-C3-5 括号
- 30240184_04-C4-1 中缀表达式
- 30240184_04-C4-2 构思
- 30240184_04-C4-3 实例
- 30240184_04-C4-4 算法框架
- 30240184_04-C4-5 算法细节
- 30240184_04-C4-6 实例
- 30240184_04-C5-1 逆波兰表达式简化
- 30240184_04-C5-2 体验
- 30240184_04-C5-3 手工
- 30240184_04-C5-4 转换算法
- 30240184_04-D-1 队列接口
- 30240184_04-D-2 实例
- 30240184_04-D-3 实现
- 30240184_05-A-1 树
- 30240184_05-A-2 应用
- 30240184_05-A-3 有根数
- 30240184_05-A-4 有序树
- 30240184_05-A-5 路径
- 30240184_05-A-6 连通图无环图
- 30240184_05-A-7 深度层次
- 30240184_05-B-1 树的表示
- 30240184_05-B-2 父节点
- 30240184_05-B-3 孩子节点
- 30240184_05-B-4 父亲孩子表示法
- 30240184_05-B-5 长子兄弟表示法
- 30240184_05-C-1 二叉树概述
- 30240184_05-C-2 真二叉树
- 30240184_05-C-3 描述多叉树
- 30240184_05-D-1 BinNode类
- 30240184_05-D-2 BinNode接口
- 30240184_05-D-3 BinTree类
- 30240184_05-D-4 高度更新
- 30240184_05-D-5 节点插入
- 30240184_05-E1-1 先序遍历转化策略
- 30240184_05-E1-2 遍历规则
- 30240184_05-E1-3 递归实现
- 30240184_05-E1-4 迭代实现(1)
- 30240184_05-E1-5 实例
- 30240184_05-E1-6 新思路
- 30240184_05-E1-7 新构思
- 30240184_05-E1-8 迭代实现(2)
- 30240184_05-E1-9 实例
- 30240184_05-E2-1 中序遍历递归
- 30240184_05-E2-2 观察
- 30240184_05-E2-3 思路
- 30240184_05-E2-4 构思
- 30240184_05-E2-5 实现
- 30240184_05-E2-6 实例
- 30240184_05-E2-7 分摊分析
- 30240184_05-E4-1 层次遍历次序
- 30240184_05-E4-2 实现
- 30240184_05-E4-3 实例
- 30240184_05-E5-1 重构之遍历序列
- 30240184_05-E5-2 (先序或后序)与中序
- 30240184_05-E5-3 (先序或后序) x 真
- 30240184_06-A-1 概述:邻接、关联
- 30240184_06-A-2 无向、有向
- 30240184_06-A-3 路径、环路
- 30240184_06-B1-1 邻接矩阵-接口
- 30240184_06-B1-2 关联矩阵
- 30240184_06-B1-3 实例
- 30240184_06-B1-4 顶点和边
- 30240184_06-B1-5 邻接矩阵
- 30240184_06-B1-6 顶点静态操作
- 30240184_06-B1-7 边操作
- 30240184_06-B1-8 顶点动态操作
- 30240184_06-B1-9 综合评价
- 30240184_06-C-1 BFS化繁为简
- 30240184_06-C-2 策略
- 30240184_06-C-3 实现
- 30240184_06-C-4 可能情况
- 30240184_06-C-5 实例
- 30240184_06-C-6 多连通
- 30240184_06-C-7 复杂度
- 30240184_06-C-8 最短路径
- 30240184_06-D-1 DFS算法
- 30240184_06-D-2 DFS框架
- 30240184_06-D-3 细节
- 30240184_06-D-4 无向图
- 30240184_06-D-5 有向图
- 30240184_06-D-6 多可达域
- 30240184_06-D-7 嵌套引理
- 30240184_07-A-1 概述纵览
- 30240184_07-A-2 循关键码访问
- 30240184_07-A-3 有序性
- 30240184_07-A-4 单调性
- 30240184_07-A-5 接口
- 30240184_07-B-1 算法及实现概述
- 30240184_07-B-2 查找-算法
- 30240184_07-B-3 查找-理解
- 30240184_07-B-4 查找-实现
- 30240184_07-B-5 查找-语义
- 30240184_07-B-6 插入-算法
- 30240184_07-B-7 插入-实现
- 30240184_07-B-8 删除-框架
- 30240184_07-B-9 删除-单分支
- 30240184_07-B-A 删除-双分支
- 30240184_07-B-B 删除-复杂度
- 30240184_07-C-1 平衡与等价-极端退化
- 30240184_07-C-2 随机生成
- 30240184_07-C-3 理想平衡
- 30240184_07-C-4 等价BST
- 30240184_07-C-5 等价变换旋转调整
- 30240184_07-D-1 AVL-BBST
- 30240184_07-D-2 平衡因子
- 30240184_07-D-3 适度平衡
- 30240184_07-D-4 接口
- 30240184_07-D-5 失衡复衡
- 30240184_07-D-6 插入单旋
- 30240184_07-D-7 插入双旋
- 30240184_07-D-8 插入实现
- 30240184_07-D-9 删除单旋
- 30240184_07-D-A 删除双旋
- 30240184_07-D-B 删除实现
- 30240184_07-D-C 3加4重构
- 30240184_07-D-D 3加4实现
- 30240184_07-D-E rotateAt()
- 30240184_07-D-F 综合评价
- 08A1-1 伸展树:逐层伸展 宽松平衡
- 08A1-2 局部性
- 08A1-3 自适应调整
- 08A1-4 逐层伸展
- 08A1-5 实例
- 08A1-6 一步一步往上爬
- 08A1-7 最坏情况
- 08A2-1 伸展树:双层伸展 双层伸展
- 08A2-2 子孙异侧
- 08A2-3 子孙同侧
- 08A2-4 点睛之笔
- 08A2-5 折叠效果
- 08A2-6 分摊性能
- 08A2-7 最后一步
- 08A3-1 伸展树:算法实现 功能接口
- 08A3-2 伸展算法
- 08A3-3 四种情况
- 08A3-4 查找算法
- 08A3-5 插入算法
- 08A3-6 删除算法
- 08A3-7 综合评价
- 08B1-1 B-树:动机 640KB
- 08B1-2 越来越大的数据
- 08B1-3 越来越小的内存
- 08B1-4 一秒与一天
- 08B1-5 分级IO
- 08B1-6 1Bto1KB
- 08B2-1 B-树:结构 观察体验
- 08B2-2 多路平衡
- 08B2-3 还是IO
- 08B2-4 深度统一
- 08B2-5 阶次含义
- 08B2-6 紧凑表示
- 08B2-7 BT-Node
- 08B2-8 BTree
- 08B3-1 B-树:查找 算法过程
- 08B3-2 操作实例
- 08B3-3 算法实现
- 08B3-4 主次成本
- 08B3-5 最大高度
- 08B3-6 最小高度
- 08B4-1 B-树:插入 算法框架
- 08B4-2 分裂
- 08B4-3 再分裂
- 08B4-4 分裂到根
- 08B4-5 实例演示
- 08B5-1 B-树:删除 算法框架
- 08B5-2 旋转
- 08B5-3 合并
- 08B5-4 实例演示
- 08B5-5 道法自然
- 08XA1-1 红黑树:动机 观察体验
- 08XA1-2 持久性
- 08XA1-3 关联性
- 08XA1-4 O(1)重构
- 08XA2-1 红黑树:结构 定义规则
- 08XA2-2 实例验证
- 08XA2-3 提升变换
- 08XA2-4 末端节点
- 08XA2-5 红黒树,即是B-树
- 08XA2-7 接口定义
- 08XA3-1 红黑树:插入 以曲为直
- 08XA3-2 双红缺陷
- 08XA3-3 算法框架
- 08XA3-4 RR-1
- 08XA3-5 RR-2
- 08XA3-6 归纳回味
- 08XA4-1 红黑树:删除 以曲为直
- 08XA4-2 算法框架
- 08XA4-3 双黑缺陷
- 08XA4-4 BB-1
- 08XA4-5 反观回味
- 08XA4-6 BB-2R
- 08XA4-7 BB-2B
- 08XA4-8 BB-3
- 08XA4-9 归纳体味
- 09B-1 散列:原理 从服务到电话
- 09B-2 循值访问
- 09B-3 数组
- 09B-4 原理
- 09B-5 散列
- 09B-6 冲突
- 09C-1 散列:散列函数 冲突难免
- 09C-2 何谓优劣
- 09C-3 整除留余
- 09C-4 以蝉为师
- 09C-5 MAD
- 09C-6 平方取中
- 09C-7 折叠汇总
- 09C-8 伪随机数
- 09C-9 多项式
- 09C-A VORLDMORT
- 09C-B DSA@THU
- 09D1-1 散列:排解冲突1 一山二虎
- 09D1-2 泾渭分明
- 09D1-3 开放定址
- 09D1-4 线性试探
- 09D1-5 懒惰删除
- 09D2-1 散列:排解冲突2 平方试探
- 09D2-2 一利一弊
- 09D2-3 至多半载
- 09D2-4 M加LEMDA
- 09D2-5 双蜓点水
- 09D2-6 4K 加 3
- 09D2-7 双平方定理
- 09D2-8 泾渭分明
- 09E-1 桶、计数排序 大数据小范围
- 09E-2 桶排序
- 10a1-1 需求与动机:应用需求
- 10a1-2 计算模式
- 10a1-3 功能接口
- 10a2-1 基本实现:向量
- 10a2-2 有序向量
- 10a2-3 向量
- 10b1-1 完全二叉堆:结构 完全二叉树
- 10b1-2 结构性
- 10b1-3 形具神备
- 10b1-4 堆序性
- 10b2-1 完全二叉堆:插入与上滤 上滤
- 10b2-2 实例
- 10b2-3 实现
- 10b2-4 效率
- 10b3-1 完全二叉堆:删除与下滤 算法
- 10b3-2 实例
- 10b3-3 实现
- 10b3-4 效率
- 10b4-1 完全二叉堆:批量建堆 自上而下的上滤:算法
- 10b4-2 自上而下的上滤:效率
- 10b4-3 自下而上的下滤:算法
- 10b4-4 自下而上的下滤:实例
- 10B4-5 自下而上的下滤:效率
- 10C-1 堆排序:算法
- 10C-2 就地
- 10C-3 实现
- 10C-4 实例
- 10XA1-1 左式堆:结构 第一印象
- 10XA1-2 堆之合并
- 10XA1-3 奇中求正
- 10XA1-4 NPL
- 10XA1-5 左倾性
- 10XA1-6 左展右敛
- 10XA2-1 左式堆:合并 LEFTHEAP模板类
- 10XA2-2 算法
- 10XA2-3 实现
- 10XA2-4 实例
- 10XA3-1 左式堆:插入与删除 插入即是合并
- 10XA3-2 删除亦是合并
- 11A-1 ADT:定义 特点
- 11A-2 术语
- 11A-3 ADT
- 11B1-1 串匹配:问题与需求
- 11B1-2 算法测评
- 11B2-1 蛮力匹配:构思
- 11B2-2 版本一
- 11B2-3 版本二
- 11B2-4 性能
- 11C1-1 KMP:从记忆到预知 重复匹配的前缀
- 11C1-2 不变性
- 11C1-3 记忆力
- 11C1-4 预知力
- 11C2-1 KMP:查询表 制表备查
- 11C2-2 主算法
- 11C2-3 实例
- 11C3-1 KMP:理解next 快速移动
- 11C3-2 避免回溯
- 11C3-3 通配哨兵
- 11C4-1 KMP:构造next 递推
- 11C4-2 算法
- 11C4-3 实现
- 11C5-1 KMP:分摊分析 失之粗糙
- 11C5-2 精准估计
- 11C6-1 KMP:再改进 美中不足
- 11C6-2 以卵击石
- 11C6-3 前车之覆
- 11C6-4 后车之鉴
- 11C6-5 可视对比
- 11D1-1 BM_BC:以终为始 不对称性
- 11D1-2 善待教训
- 11D1-3 前轻后重
- 11D1-4 以终为始
- 11D2-1 BM_BC:坏字符 坏字符
- 11D2-2 特殊情况
- 11D3 BM_BC:构造bc 画家策略
- 11D4-1 BM_BC:性能分析 最好情况
- 11D4-2 最坏情况
- 11E1-1 BM_GS:好后缀 兼顾经验
- 11E1-2 好后缀策略
- 11E1-3 实例体验
- 11E2 BM_GS:构造GS表
- 11E3-1 BM_GS:BM之性能
- 11E3-2 各算法纵览
- 11F1-1 Karp_Rabin:化串为数
- 11F1-2 凡物皆数
- 11F1-3 串亦是数
- 11F2-1 KR:散列 数位溢出
- 11F2-2 散列压缩
- 11F2-3 应对冲突
- 11F2-4 指纹更新
- 12A1-1 快排:算法A 分而治之
- 12A1-2 轴点
- 12A1-3 构造轴点
- 12A1-4 单调性不变性
- 12A1-5 实例
- 12A2-1 快排:性能分析 不稳定_就地
- 12A2-2 最好最坏情况
- 12A2-3 平均情况
- 12A4-1 快排:变种 不变性
- 12A4-2 单调性
- 12A4-3 实现
- 12A4-4 实例
- 12A4-5 时 空 稳定性
- 12B1-1 选取:众数 中位数
- 12B1-2 从中位数到众数
- 12B1-3 从频繁数到众数
- 12B1-4 减而治之
- 12B1-5 算法实现
- 12B3-1 选取:通用算法 尝试
- 12B3-2 QUICKSELECT
- 12B3-3 LINEARSELECT:算法
- 12B3-4 LINEARSELECT:性能分析A
- 12B3-5 LINEARSELECT:性能分析B
- 12B3-6 LINEARSELECT:性能分析C
- 12C1-1 希尔排序:Shell序列 策略
- 12C1-2 实例
- 12C1-3 循秩访问
- 12C1-4 插入排序
- 12C1-5 SHELL序列
- 12C2-1 希尔排序:更佳的序列 邮资问题
- 12C2-2 定理K
- 12C2-3 逆序对
【清华大学】数据结构与算法以数据结构基础和算法设计方法为知识单元,系统地介绍了数据结构与算法的基本知识及应用,简明扼要地阐释了计算机算法的设计与分析方法。本书的主要内容包括线性表、树、图等基础数据结构,同时也包括一些实用性较强的算法及高级数据结构,如并查集、伸展树等。以经典问题算法为例,书中分类介绍了算法设计方法以及查找与排序算法等。编者结合ACM国际大学生程序设计竞赛的需求,对各章节知识的灵活应用进行了详细的分析,用丰富的实例帮助读者由浅入深、快速地掌握算法设计的技巧,提升算法设计能力。