算法与数据结构体系课

110 阅读10分钟

**

算法与数据结构体系课

超清原画 完整无密 网盘下载

 点击下载:算法与数据结构体系课

从0到工作5年,面试、进大厂、搭建知识体系、拓展技术上限

你不再需要其它算法与数据结构课程了

为什么学算法已经是一个不应该问的问题了,从功利角度,大厂必考你必学;从长久角度,算法将决定你的技术上限

**

为什么要学习这门课?

**

1:波波老师5年慕课网算法

授课经验的集大成之作

同类课程中已然“无敌”

2:从基础知识到知识体系

在非智能算法领域

你几乎已经不会再有问题

**

**

3:全程动画展示

精心制作的 ppt 动画

让你更加容易地

理解算法的流程

4:算法是需要不断优化的

带你更能实际看到不同算法

优化后的真实效果

5:将常用的算法与数据结构

搭建成一个“随取随用,

随用随查”的库

章节目录:

阶段一:算法与数据构造根底

试看

第1周 线性查找法

开课第一周,我们将学习最简单的算法:线性查找法。在学习这样一个最简单的算法的过程中,我们也将接触诸多概念:循环不变量,复杂度剖析,如何运用泛型让我们的算法更通用,以及简单的性能测试方式。

课程布置:

1、什么是算法

2、为什么要学习算法和数据构造

3、线性查找算法

4、运用泛型让算法更通用

5、自定义类测试算法

6、循环不变量

7、复杂度剖析

8、常见算法复杂度举例

第2周 排序根底

在这一周,我们将接触两个最根底的排序算法:选择排序法和插入排序法。固然这两个排序算法很简单,但在这一周,我们将稳固我们之前学习的学问,将循环不变量的思绪和复杂度剖析应用在这些算法中。

课程布置:

1、选择排序法

2、原地排序

3、运用泛型约束

4、Comparable 接口的运用

5、插入排序法

6、插入排序法的优化

7、排序算法的测试数据生成

8、排序算法的性能测试和比拟

第3周 数据构造根底:动态数组,栈和队列

这一周,我们开端接触最根底的数据构造:线性数据构造。这些数据构造看似简单,但是经过对他们的学习,会接触很多新的概念,包括对静态数组的扩容和缩容;均摊复杂度剖析;数据构造的接口设计;循环队列,等等。

课程布置:

1、了解静态数组和动态数组

2、如何封装属于本人的数据构造

3、动态数组的扩容和缩容

4、均摊复杂度剖析

5、数据构造的接口设计

6、栈和栈的应用

7、队列和队列的应用

8、队列的优化:循环队列

9、双端队列

10、Java 言语中的设计问题讨论

第4周 动态数据构造根底:链表

在这一周,我们将接触最根底的动态数据构造:链表。在学习链表的过程中,我们将更深化透彻天文解程序设计中“援用”的概念,更会开端接触程序设计中最常用的一种逻辑搭建方式:递归

课程布置:

1、什么是链表

2、链表的更删改查

3、笼统数据接口

4、运用链表完成栈和队列

5、链表的性能问题

6、链表自然的递归构造

7、经过链表深化了解递归

8、经典链表相关的面试问题

阶段二:递归无处不在

第5周 归并排序法

我们将学习第一个高级排序算法:归并排序法。将看到更通用的递归算法的设计办法,了解自顶向下和自底向上,了解分治。看到归并排序法的优化,接触 O(nlogn) 这一复杂度的剖析方式,归并排序思想的实践应用

课程布置:

1、归并排序的算法思想

2、归并过程

3、复杂的递归算法运转机制解读

4、归并排序法的复杂度剖析

5、归并排序法的优化

6、自顶向下和自底向上

7、运用归并排序法求逆序数对

第6周 快速排序法

本周,我们将学习第二个高级排序算法:快速排序法。将逐步优化,完成四个版本的快速排序算法,并看到算法对不同数据表现出的差别。同时,也会简单引见面对随机算法,我们的复杂度剖析有何不同

课程布置:

1、快速排序算法的根本思想

2、随机化的快速排序算法

3、二路快排

4、三路快排

5、不同快速排序算法的性能比拟

6、快排的复杂度剖析

7、快排思想的实践应用

第7周 二分查找法

我们将学一个看似根底但“变化无常”的算法:二分搜索法 我们将探究根底二分搜索算法的递归和非递归写法了解循环不变量和如何处置边境问题等等,很多算法面试以至竞赛问题,实质都是二分搜索问题

课程布置:

1.二分搜索法的根本思想

2.二分搜索的递归完成

3.二分搜索的非递归完成

4.深入了解程序设计中的边境问题

5.二分搜索在浮点数据中的应用

6.运用二分搜索处理寻界问题

7.防止死循环

8.二分搜索的模板

9.运用二分搜索法的思绪处理实践问题

第8周 二分搜索树

我们学习第一个根底树构造:二分搜索树。在学习二分搜索树的过程中,我们将大量运用递归,深化了解递归。同时我们会学习经典的数据遍历方式:DFS 和 BFS。还会接触两个最为常见的笼统数据类型:汇合和映射

课程布置:

1.什么是树构造

2.在数据构造中运用递归

3.深度优先遍历

4.广度优先遍历

5.Hubbard Deletion

6.笼统数据构造:汇合

7.笼统数据构造:映射

8.汇合和映射的经典应用

阶段三:算法与数据构造进阶

第9周 堆,优先队列和堆排序

我们将学习一个特殊的树构造:堆。学习后我们将看到数组也能够表示树构造。同时我们还会引出另外一种高级排序算法:堆排序。最后,我们将运用堆组建一种应用极端普遍的重要数据构造:优先队列,并拓展对队列的认识

课程布置:

1、数组也能够表示树构造

2、堆的根本操作

3、Sift Up 和 Sift Down

4、Heapify

5、堆排序

6、优先队列

7、优先队列的应用

8、广义队列

第10周 冒泡排序,希尔排序和排序算法大总结

我们将再学习两个排序算法:冒泡排序和希尔排序法。其中希尔排序法是一种重要的排序办法,插入排序法的优势如何被应用乃至改形成一个全新的高效算法。同时停止一个大总结愈加系统地梳理和排序算法相关的系列概念。

课程布置:

1、冒泡排序的根本思想

2、冒泡排序的优化

3、希尔排序的根本思想

4、希尔排序的优化

5、什么是增量序列

6、基于比拟的排序算法总结

7、稳定排序

第11周 线段树,Trie 和并查集

我们将学习三种应用在不同场所的树构造:线段树,Trie 和并查集。学习后将看到不同的数据构造具有处理不同问题的才能,理解如何依据问题不同的问题,选择适宜的数据构造。

课程布置:

1、线段树的根本操作

2、区间查讯问题

3、Trie 树的根本操作

4、运用 Trie 处理形式匹配问题

5、并查集的根本原理

6、不时优化六个版本的并查集

7、并查集的应用

第12周 AVL 树和红黑树

我们将学习两种高级的二分搜索树构造:AVL 树和红黑树。了解二分搜索树的局限性,接触均衡树的概念。我们还会学习一种树构造:2-3 树,看到 2-3 树和红黑树的等价性也是后续我们学习 B 类树的根底

课程布置:

1、什么是均衡树

2、左旋转和右旋转

3、AVL 树

4、2-3 树

5、2-3 树和红黑树的等价性

6、红黑树坚持均衡的根本操作

7、红黑树的添加操作完成

8、二分搜索树,AVL 树和红黑树的性能比照

9、词频统计应用

10、运用真实数据测试不同底层封装的汇合和映射构造

第13周 哈希表和 SQRT 合成

我们将首先学习哈希表这种重要的数据构造深化了解哈希的概念,并运用链地址法设计出属于我们本人的哈希表构造。同时将学习到分块这一概念并接触另外一个经典的运用分块的思想处理区间问题的数据构造:SQRT 合成

课程布置:

1、哈希的根本思想

2、哈希函数的设计

3、链地址法

4、Java 中的哈希表

5、分块思想

6、SQRT 合成

7、运用 SQRT 合成处置区间问题

阶段四:更宽广的算法和数据构造世界

第14周 非比拟排序

在这一周,我们将看到:排序算法不一定基于比拟,不停止元素的比拟也能够对某类特殊的对象停止排序,即非比拟排序算法。我们将学习计数排序法,桶排序法和基数排序法。

课程布置:

1、非比拟排序

2、计数排序法

3、桶排序法

4、基数排序法

5、LSD 和 MSD

6、非比拟排序的性能测试

7、非比拟排序和比拟排序的性能比照

第15周 形式匹配

我们将学习一类重要的算法:形式匹配。从根本的形式匹配动身,引出大名鼎鼎的 KMP 算法。关于 KMP 算法,我们会学习两种完成方式,并接触到计算机范畴的一个重要的概念:状态机。

课程布置:

1.朴素形式匹配算法

2.KMP 算法

3.KMP 算法中的 LPS 数组

4.状态机

5.状态机的其他应用

6.滚动哈希

7.RK 算法

8.RK 算法的经典问题

第16周 随机算法,外存算法和更多

最后一周,我们将看到更宽广的算法和数据构造的世界。将探究随机算法的世界,学习 Knuth 洗牌算法和蓄水池抽样算法。探究外存算法和数据构造的世界,学习 B 类树等,以及更多在外存中处置问题的方式和思想

课程布置:

1.随机算法

2.Knuth 洗牌算法

3.Knuth 洗牌算法的应用

4.蓄水池抽样算法

5.B 类树

6.外排序

7.更多外存算法和数据构造

8.大范围数据处置方式

9.更宽广的算法和数据构造

**