算法与数据结构--满足你从开始学编程到工作5年内的几乎所有算法学习需求
算法与数据结构体系课从0到工作5年,面试、进大厂、搭建知识体系、拓展技术上限
你不再需要其它算法与数据结构课程了
为什么学算法已经是一个不应该问的问题了,从功利角度,大厂必考你必学;从长久角度,算法将决定你的技术上限
为什么要学习这门课?1:波波老师5年慕课网算法
授课经验的集大成之作
同类课程中已然“无敌”
2:从基础知识到知识体系
在非智能算法领域
你几乎已经不会再有问题
3:全程动画展示
精心制作的 ppt 动画
让你更加容易地
理解算法的流程
4:算法是需要不断优化的
带你更能实际看到不同算法
优化后的真实效果
5:将常用的算法与数据结构
搭建成一个“随取随用,
随用随查”的库另:
1:《算法与数据结构体系课》来自某课网,原价899,由乐学编程整理发布!乐学编程承诺,本站所有课程百分百高清,完整,原画,包含所有的视频+素材+课件+源码,官方同步体验!
2:本站所有课程除试看部分必须使用专用播放器观看!
3:官方品质,信誉保证,本站包含某课网,某讯课堂,某易云,饥人谷,某度教育....等上万部课程正在陆续更新,感谢同学们的信任与支持,保证让同学们满意!
4:所有课程都会包更新,只要官方更新本站延迟2-3天就会更新。
下载地址回复可见:**** Hidden Message *****
章节目录:
阶段一:算法与数据结构基础试看第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 Deletion6.抽象数据结构:集合7.抽象数据结构:映射8.集合和映射的经典应用阶段三:算法与数据结构进阶第9周 堆,优先队列和堆排序我们将学习一个特殊的树结构:堆。学习后我们将看到数组也可以表示树结构。同时我们还会引出另外一种高级排序算法:堆排序。最后,我们将使用堆组建一种应用极其广泛的重要数据结构:优先队列,并拓展对队列的认识课程安排:1、数组也可以表示树结构2、堆的基本操作3、Sift Up 和 Sift Down4、Heapify5、堆排序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 和 MSD6、非比较排序的性能测试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.更广阔的算法和数据结构
页:
[1]