“极简数据结构”将通过简单明了的视频讲解,让学习者在最短时间内学会正确使用数据结构而不纠缠过多细节,迅速进入实战体验,并为后续深入学习“算法三部曲”(《算法导论》《算法设计指南》《算法》)打下良好的基础。
旧版视频已经全部更新完,新版已转到网易云课堂重新录制并连载,新旧两版共有800多人学习。视频都会像软件那样快速迭代,不断完善更新,并且提供完整的版本,将来会出纸质书版本。另外,我们还会不定期更新番外篇,讲解经典数据结构面试题。
课程链接:(study.163.com/course/intr…)
每讲视频基本都在20分钟以内,短小精悍,希望以不那么硬核的内容也能让大家体会到算法和数据结构之美。新版目录:
- 预备知识
- Cornell笔记
- 开发环境
- 课程大纲
- 第1章: 语言基础
- C++输入输出
string的简单使用- 引用
- 数组和向量
- 对角线问题
- 排序之王
sort - 二分查找算法
- 数组二分查找
- 向量二分查找
问题
- 第2章: 抽象之妙
- 抽象数据类型
- 线性查找
- 查找问题
- 初识集合
- 再谈集合
- 次序统计量
- 有序向量与无序向量
- 以集合描述算法
- STL容器一览
- 第3章: 性能分析
- 时空之谜
- 运行时间
- 量级
- 渐近记号
- 常见运行时间
- 量级鸿沟
- 求和分析
- 抽象数据类型性能
- 数据结构选用
- 第4章: 向量与链表
- 向量用法
- 容量之妙
- 自然数映射与下标
- 部分和
- 字符统计
- 初识链表
- 链表操作
- 结点链接
- 单链实例
- 就地逆置
- 连续放入
- 第5章: 栈与队列
- 时间次序
- 进制转换
- 循环队列
- 基数排序
- 电话号码排序
- 括号匹配
- 迷宫问题
- DFS求解迷宫
- BFS求解迷宫
- 第6章: 集合
- 二叉树
- 树
- 二叉树遍历
- 递归构造二叉树
- 二叉查找树
- 遍历结果重构二叉树
- 集合性能分析
- 迭代器遍历时间
- 不相交集
- 合并查找
- 第7章: 字典
- 初识字典
- 字典用法
- 位向量
- 结链法
- 探查序列
- 开放式定址法
- 字典性能调优
- 自定义散列
- 第8章: 映射
- 映射用法
- 双向映射
- 计数排序
- 转置
- 桶排序
- 直方图排序
- trie
- 第9章: 排序
- 插入排序
- 两路归并
- 归并排序
- 排序下界
- 划分
- 快速排序
- 快速选择
- 第10章: 优先级队列
- 响应优先
- 上浮操作
- 下沉操作
- 堆排序
- 建堆算法
- 离散事件仿真
- Huffman编码
- 多路归并
- 番外篇
待定
旧版共80讲视频,目录如下:
- 第1章:语言基础
- C++输入输出
string的简单使用- 数组和向量
- 对角线问题
- 数组和向量的排序
- 二分查找原理
- 数组二分查找
- 向量二分查找
问题
- 第2章:抽象之妙
- 抽象数据类型
- 查找问题的抽象数据类型视角
- 初识集合
- 次序统计量
- 有序向量与无序向量
- 以集合描述算法
- STL容器一览
- 第3章:性能分析
- 时空之谜
- 程序运行时间
- 量级
- 常见运行时间
- 运行时间的差异
- 抽象数据类型的性能
- 抽象数据类型选用
- 第4章:向量与链表
- 向量用法
- 容量之妙
- 自然数映射与下标
- 初识链表
- 链表操作
- 结点链接
- 单链实例
- 就地逆置
- 连续放入
- 第5章:栈与队列
- 栈与队列
- 进制转换
- 循环队列
- 基数排序
- 电话号码排序
- 括号匹配
- 迷宫问题
- DFS求解迷宫
- BFS求解迷宫
- 第6章:树/集合
- 二叉树
- 树的存储
- 二叉树遍历
- 二叉树递归构造
- 二叉查找树
- 遍历结果重构二叉树
- 集合性能分析
- 迭代器遍历时间
- 不相交集
- 第7章:散列/字典
- 初识字典
- 字典用法
- 位向量与
bool向量 - 结链法
- 探查序列
- 开放式定址法
- 字典性能调优
- 自定义散列
- 第8章:键值映射
- 映射用法
- 双向映射
- 计数排序
- 转置
- 桶排序
- 直方图排序
- trie
- 第9章:堆/优先级队列
- 响应优先
- 上浮操作
- 下沉操作
- 堆排序
- 建堆算法
- 离散事件仿真
- Huffman编码
- 多路归并
- 第10章:排序
- 插入排序
- 两路归并
- 归并排序
- 排序下界
- 划分
- 快速排序
- 次序统计量
“极简数据结构”秉承现代数据结构教学理念,我们着眼于以抽象数据类型为纲,快速提升学习者的动手能力。为此,我们借助C++丰富而强悍的标准模板库STL,辅以简短的可执行代码展示常见数据结构的极致算法性能。为减轻学习负担,我们采用接近于Python的现代C++语法,使用一个最小化的C++语言子集,并从输入输出开始讲述,确保具备C语言知识的学习者能够无缝过渡,以最低基础入门。
我们以最传统但学习效果最好的书写形式讲解,但是配备了最潮的数字化设备:
- iPad Pro 12.9”
- Apple Pencil
- Notability
- Apogee HypeMic
全手写同步录制从而打造出完全不同的视听效果。 本系列课程适合采用Cornell笔记法: