大家好, 欢迎大家来到我在慕课网上的实战课程《算法与数据结构精解》的官方代码仓。这个代码仓将不仅仅包含课程的所有源代码,还将发布课程的更新相关内容,勘误信息以及计划的更多可以丰富课程的内容,如更多分享,多多练习,等等等等。课程源码暂时只提供C++和Java两种语言的源代码。关于更多语言的支持,今后有时间,我会慢慢更新这个代码仓(不过预计会是蜗牛速了>_<)。大家可以下载、运行、测试、修改。如果你发现了任何bug,或者对课程中的任何内容有意见或建议,欢迎和我联系:)
个人网站:liuyubobobo.com
微博: 刘宇波bobo http://weibo.com/liuyubobobo
知乎: 刘宇波 http://www.zhihu.com/people/liuyubobobo
- 课程更新信息 [整理中]
- 课程及补充内容源码
- 课程补充内容 [整理中][不断更新]
- 课程配套练习 [整理中][不断更新]
- 课程勘误信息 [整理中]
第一章 当我们谈论算法的时候,我们在谈论什么? | [无代码] | |
---|---|---|
1-1 我们究竟为什么要学习算法 | [无代码] | |
1-2 课程介绍 | [无代码] | |
第二章 排序基础 | 章节C++源码 | 章节Java源码 |
2-1 选择排序 - Selection Sort | C++源码 | Java源码 |
2-2 使用模板(泛型)编写算法 | C++源码 | Java源码 |
2-3 随机生成算法测试用例 | C++源码 | Java源码 |
2-4 测试算法的性能 | C++源码 | Java源码 |
2-5 插入排序法 - Insertion Sort | C++源码 | Java源码 |
2-6 插入排序法的改进 | C++源码 | Java源码 |
2-7 更多关于O(n^2)排序算法的思考 | [无代码] | |
本章课程最终代码 | C++源码 | Java源码 |
补充1 冒泡排序法 - Bubble Sort | C++源码 | Java源码 |
补充2 希尔排序法 - Shell Sort | C++源码 | Java源码 |
第三章 高级排序算法 | 章节C++源码 | 章节Java源码 |
3-1 归并排序法 - Merge Sort | [无代码] | |
3-2 归并排序法的实现 | C++源码 | Java源码 |
3-3 归并排序法的优化 | C++源码 | Java源码 |
3-4 自底向上的归并排序算法 | C++源码 | Java源码 |
3-5 快速排序法 - Quick Sort | C++源码 | Java源码 |
3-6 随机化快速排序法 | C++源码 | Java源码 |
3-7 双路快速排序法 | C++源码 | Java源码 |
3-8 三路快速排序法 | C++源码 | Java源码 |
3-9 归并排序和快速排序的衍生问题 | [无代码] | |
本章课程最终代码 | C++源码 | Java源码 |
补充1 归并排序的另外一个优化,在merge外申请aux空间 | C++源码 | Java源码 |
补充2 自顶向下和自底向上的归并排序的比较 | C++源码 | Java源码 |
补充3 ShellSort, MergeSort 和 QuickSort 的比较 | C++源码 | Java源码 |
补充4 求逆序数 | C++源码 | Java源码 |
补充5 求任意数组第k小(大)的值 | C++源码 | Java源码 |
补充6 对链表的O(nlogn)级别的排序 | [整理中] | [敬请期待] |
补充7 更多高级的归并排序算法优化思想 | [整理中] | [敬请期待] |
补充8 更多高级的快速排序算法优化思想 | [整理中] | [敬请期待] |
第四章 堆和堆排序 | 章节C++源码 | 章节Java源码 |
4-1 为什么使用堆 | [无代码] | |
4-2 堆的基本存储 | C++源码 | Java源码 |
4-3 Shift Up | C++源码 | Java源码 |
4-4 Shift Down | C++源码 | Java源码 |
4-5 基础堆排序和Heapify | C++源码 | Java源码 |
4-6 优化的堆排序 - Heap Sort | C++源码 | Java源码 |
4-7 排序算法总结 | [无代码] | |
4-8 索引堆 - Index Heap | C++源码 | Java源码 |
4-9 索引堆的优化 | C++源码 | Java源码 |
4-10 和堆相关的其他问题 | [无代码] | |
本章课程最终代码 | C++源码 | Java源码 |
补充1 优化的Shift Up和Shift Down | [整理中] | [敬请期待] |
补充2 最小堆 | [整理中] | [敬请期待] |
补充3 最小索引堆 | [整理中] | [敬请期待] |
补充4 从0开始索引的最大堆和最小堆 | [整理中] | [敬请期待] |
补充5 从0开始索引的最大索引堆和最小索引堆 | [整理中] | [敬请期待] |
补充6 N个元素中的前M小元素 | [整理中] | [敬请期待] |
补充7 双向优先队列 | [整理中] | [敬请期待] |
补充8 多叉堆 | [整理中] | [敬请期待] |
补充9 更高级的堆结构 | [整理中] | [敬请期待] |