## 算法与数据结构 - 课程官方代码仓
大家好, 欢迎大家来到我在[慕课网](http://www.imooc.com/)上的实战课程[《算法与数据结构精解》](http://coding.imooc.com/class/71.html)的官方代码仓。这个代码仓将不仅仅包含课程的所有源代码,还将发布课程的更新相关内容,勘误信息以及计划的更多可以丰富课程的内容,如更多分享,多多练习,等等等等。课程源码暂时只提供C++和Java两种语言的源代码。关于更多语言的支持,今后有时间,我会慢慢更新这个代码仓(不过预计会是蜗牛速了>_<)。
在这里感谢 [@ShiveryMoon](https://github.com/ShiveryMoon) 同学,制作了这个课程代码的完整**Python版本**,有需要的同学请围观:[https://github.com/ShiveryMoon/Imooc-Algorithm-PythonEdition](https://github.com/ShiveryMoon/Imooc-Algorithm-PythonEdition)
大家可以下载、运行、测试、修改。如果你发现了任何bug,或者对课程中的任何内容有意见或建议,欢迎和我联系:)
**个人网站**:[liuyubobobo.com](http://liuyubobobo.com)
**电子邮件**:[liuyubobobo@gmail.com](mailto:liuyubobobo@gmail.com)
**微博**: [刘宇波bobo http://weibo.com/liuyubobobo](http://weibo.com/liuyubobobo)
**知乎**: [刘宇波 http://www.zhihu.com/people/liuyubobobo](http://www.zhihu.com/people/liuyubobobo)
**知乎专栏:**[是不是很酷 https://zhuanlan.zhihu.com/liuyubobobo](https://zhuanlan.zhihu.com/liuyubobobo)
**个人公众号:是不是很酷**:)
![QRCode](qrcode.jpg)
## 本代码仓包括
* [课程更新信息](https://github.com/liuyubobobo/Play-with-Algorithms#课程更新信息)
* [课程及补充内容源码](https://github.com/liuyubobobo/Play-with-Algorithms#课程源码目录)
* 课程补充文字讲解 [整理中][不断更新]
* 课程配套练习 [整理中][不断更新]
* 课程勘误信息 [整理中][不断更新]
## 课程更新信息
* **v2.0** 全套课程配备Java代码(包含已有C++代码的补充内容)。具体参见[课程源码目录](https://github.com/liuyubobobo/Play-with-Algorithms#课程源码目录)的Java代码部分。
* **v1.1** 全套课程配备补充内容
* 注:补充代码具体参见[课程源码目录](https://github.com/liuyubobobo/Play-with-Algorithms#课程源码目录)每一章的后续部分。**并非所有补充内容都包含源码**。补充内容本身不是课程学习的必须部分。仅供大家扩展思路参考使用。
* 关于补充内容,对于课程整体学习,可以忽略。**建议先完成课程必要部分学习,再酌情研究补充内容**。
* 对于没有源码的补充内容,我会不定期更新代码,但不保证时间。很多内容是我想到的内容,放在目录里,供大家拓展思路使用。大家也可以自行编写代码练习完成补充内容,相信是很好的编程锻炼:)大家加油!
* **v 1.0** 全套课程上线
## 课程相关其他代码仓
* [**《玩转算法面试》课程**](https://coding.imooc.com/class/82.html), 代码仓: [Play-with-Algorithm-Interview](https://github.com/liuyubobobo/Play-with-Algorithm-Interview)
* [**《看得见的算法》课程**](https://coding.imooc.com/class/138.html), 代码仓: [Play-with-Algorithm-Visualization](https://github.com/liuyubobobo/Play-with-Algorithm-Visualization)
* [**《玩转数据结构》课程**](https://coding.imooc.com/class/207.html), 代码仓: [Play-with-Algorithm-Visualization](https://github.com/liuyubobobo/Play-with-Data-Structures)
* 我的**LeetCode题解代码仓**:[Play Leetcode](https://github.com/liuyubobobo/Play-Leetcode) (注:以C++实现为主)
* [@ShiveryMoon 同学的本课程Python代码仓](https://github.com/ShiveryMoon/Imooc-Algorithm-PythonEdition)
* [@摘星fy 同学的Canvas版本可视化堆排序过程](https://github.com/kingAnyWHere/MaxHeap),同时也是一个很好的堆结构的可视化。
## 课程源码目录
| **第一章 当我们谈论算法的时候,我们在谈论什么?** | [无代码] | |
| :--- | :---: | :---: |
| 1-1 我们究竟为什么要学习算法 | [无代码] | |
| 1-2 课程介绍 | [无代码] | |
| **第二章 排序基础** | [章节C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)) | [章节Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(Java)) |
| 2-1 选择排序 - Selection Sort | [C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)/01-Selection-Sort)| [Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(Java)/01-Selection-Sort/src/bobo/algo) |
| 2-2 使用模板(泛型)编写算法 | [C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)/02-Selection-Sort-Using-Template)| [Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(Java)/02-Selection-Sort-Using-Comparable/src/bobo/algo) |
| 2-3 随机生成算法测试用例 | [C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)/03-Selection-Sort-Generate-Test-Cases)| [Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/blob/master/02-Sorting-Basic/Course%20Code%20(Java)/03-Selection-Sort-Generate-Test-Cases/src/bobo/algo/SortTestHelper.java) |
| 2-4 测试算法的性能 | [C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)/04-Selection-Sort-Detect-Performance)| [Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(Java)/04-Selection-Sort-Detect-Performance/src/bobo/algo) |
| 2-5 插入排序法 - Insertion Sort | [C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)/05-Insertion-Sort)| [Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(Java)/05-Insertion-Sort/src/bobo/algo) |
| 2-6 插入排序法的改进 | [C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)/06-Insertion-Sort-Advance)| [Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(Java)/06-Insertion-Sort-Advance/src/bobo/algo) |
| 2-7 更多关于O(n^2)排序算法的思考 | [无代码]| |
| 本章课程最终代码 | [C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)/Chapter-02-Completed-Code) | [Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(Java)/Chapter-02-Completed-Code/src/bobo/algo) |
| 补充1 选择排序算法的优化 | [C++源码](02-Sorting-Basic/Course%20Code%20(C%2B%2B)/Optional-01-Optimized-Selection-Sort/) | [Java源码](02-Sorting-Basic/Course%20Code%20(Java)/Optional-01-Optimized-Selection-Sort/src/bobo/algo/) |
| 补充2 冒泡排序法 - Bubble Sort | [C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)/Optional-02-Bubble-Sort)| [Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(Java)/Optional-02-Bubble-Sort/src/bobo/algo) |
| 补充3 希尔排序法 - Shell Sort | [C++源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(C%2B%2B)/Optional-03-Shell-Sort)| [Java源码](https://github.com/liuyubobobo/Play-with-Algorithms/tree/master/02-Sorting-Basic/Course%20Code%20(Java)/Optional-03-Shell-Sort/src/bobo/algo) |
| 补�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
资源推荐
资源详情
资源评论
收起资源包目录
算法与数据结构-综合提升C++版.zip (207个子文件)
main.cpp 4KB
main.cpp 4KB
main.cpp 4KB
main.cpp 3KB
main.cpp 3KB
main.cpp 3KB
main.cpp 3KB
main.cpp 3KB
main.cpp 3KB
main.cpp 3KB
main.cpp 2KB
main.cpp 2KB
main.cpp 2KB
main.cpp 2KB
main.cpp 2KB
main.cpp 2KB
main.cpp 1KB
main.cpp 1KB
main.cpp 1KB
main.cpp 1KB
main.cpp 590B
main.cpp 553B
main.cpp 548B
.gitignore 475B
MergeSort.h 5KB
SortTestHelper.h 3KB
SortTestHelper.h 3KB
SortTestHelper.h 3KB
TestHelper.h 3KB
SortTestHelper.h 3KB
SortTestHelper.h 3KB
SortTestHelper.h 3KB
SortTestHelper.h 2KB
SortTestHelper.h 2KB
SortTestHelper.h 2KB
SortTestHelper.h 2KB
SortTestHelper.h 2KB
SortTestHelper.h 2KB
SortTestHelper.h 2KB
SortTestHelper.h 2KB
SortTestHelper.h 2KB
MergeSortO.h 2KB
SortTestHelper.h 2KB
SortTestHelper.h 2KB
QuickSort.h 2KB
MergeSort.h 2KB
MergeSort2.h 2KB
MergeSort.h 2KB
MergeSort.h 2KB
MergeSort.h 2KB
MergeSort.h 2KB
MergeSort.h 2KB
MergeSortBUO.h 2KB
MergeSortBU.h 2KB
SortTestHelper.h 2KB
QuickSort2Ways.h 2KB
MergeSort.h 2KB
QuickSort2Ways.h 2KB
MergeSort.h 2KB
MergeSort.h 2KB
Student.h 1KB
QuickSort3Ways.h 1KB
QuickSort3Ways.h 1KB
QuickSort.h 1KB
QuickSort.h 1KB
SortTestHelper.h 950B
InsertionSort.h 901B
InsertionSort.h 883B
InsertionSort.h 862B
InsertionSort.h 841B
InsertionSort.h 838B
InsertionSort.h 832B
InsertionSort.h 832B
InsertionSort.h 823B
InsertionSort.h 808B
InsertionSort.h 790B
ShellSort.h 772B
TestHelper.h 708B
BubbleSort.h 679B
SelectionSort.h 595B
SelectionSort.h 559B
SelectionSort.h 541B
SelectionSort.h 538B
SelectionSort.h 535B
SelectionSort.h 526B
InsertionSort.h 511B
InsertionSort.h 508B
InsertionSort.h 493B
InsertionSort.h 490B
InsertionSort.h 230B
Main.java 3KB
SortTestHelper.java 3KB
SortTestHelper.java 3KB
SortTestHelper.java 3KB
SortTestHelper.java 3KB
SortTestHelper.java 3KB
SortTestHelper.java 3KB
SortTestHelper.java 3KB
SortTestHelper.java 3KB
SortTestHelper.java 3KB
共 207 条
- 1
- 2
- 3
资源评论
极致人生-010
- 粉丝: 2976
- 资源: 2825
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功