java数据结构与算法分析视频教程&书籍推荐百度云下载

java数据结构与算法分析视频教程&书籍推荐百度云下载
java数据结构与算法分析视频教程&书籍推荐百度云下载
课程目录:
数组:课程内容
数组:静态数组
随机新增元素
随机删除元素
数组:二次封装静态数组
新增操作
查询操作
修改操作
删除操作
支持存储任意类型
常用操作的时间和空间复杂度
数组:动态数组
缩容
缩容的 bug 修复
均摊时间复杂度
静态数组对比动态数组
Java 内置的动态数组
链表:课程内容
指针和引用
为什么需要链表
链表对比数组
节点表示
链表:单向链表
链表查询指定索引的元素
索引和 size 的关系
链表查询指定索引的元素代码实现
修改指定索引节点的值
添加头节点
链表中间添加节点
中间添加节点代码实现
删除头节点
删除中间节点
链表遍历的另一种方式
覆写 toString 方法
链表方法测试
链表时间复杂度分析
链表:双向链表
优缺点
优势
修改双向链表节点的值
插入头节点
插入尾节点
插入中间节点
删除尾节点
Java 内置的链表说明
栈和队列:课程内容
栈:栈的特点和使用场景
系统方法调用栈
后退前进功能
栈:栈的实现
数组实现栈:选择使用右端作为栈顶
数组实现栈代码实现
动态数组实现栈
数组实现栈的测试
链表实现栈:选择左边作为栈顶
链表实现栈代码实现
动态数组实现的栈对比链表实现的栈
Java 内置的栈结构
leetcode 20 号算法题:有效的括号
题目解释
暴力解法
暴力解法优化
辅助栈解法
leetcode 155 号算法题:最小栈
辅助栈解决方案
辅助栈解决方案代码实现
使用一个栈实现
自定义栈实现
队列:队列的特点和实现
队列抽象接口
数组实现队列分析
数组实现队列代码
链表实现队列
队列:循环队列
循环队列基础实现
如何判断循环队列满了
计算循环队列的容量
循环队列的扩缩容
循环队列的测试
队列:各种队列实现方式的比较和优化
优化链表实现队列
优化链表实现队列的入队操作
优化链表实现队列的出队操作
对比两种链表实现的队列性能
对比数组队列和链表队列性能
队列:Java 中的队列
补充知识:双端队列
Java 内置队列的继承实现体系
Java Queue 中方法讲解
Java Deque 中方法讲解
Java 队列的实现
双端队列实现栈的功能
剑指 offer 9 号算法题:用两个栈实现队列
视频讲解
双指针编程技巧:基础
基础:数组两个元素交换
双指针编程技巧:快慢指针
问题朴素解法
移动零输入输出同一个数组
移动零双指针解法讲解
移动零双指针代码实现
移动零双指针之快慢指针
移动零双指针实现性能优化
双指针编程技巧:对撞指针
反转字符串朴素解法
反转字符串双指针解法
反转字符串双指针之对撞指针
总结
leetcode 27 和 125 号算法题
递归编程技巧:彻底理解并掌握递归编程技巧
方法调用本身
方法调用本身的参数变化
方法调用本身的意义
斐波那契数
走台阶
递归总结
排序算法:基础
排序算法:冒泡排序
冒泡排序详细步骤
冒泡排序的时间复杂度
冒泡排序代码实现
冒泡排序的特点
冒泡排序的优化
排序算法:选择排序
选择排序详细步骤
选择排序的时间复杂度
选择排序代码实现
抽取交换方法到父类
选择排序的特点
排序算法:插入排序
插入排序详细步骤
插入排序的时间复杂度
插入排序代码实现
插入排序的特点
插入排序的优化
冒泡排序、选择排序以及插入排序性能对比
排序算法:希尔排序
希尔排序递增序列计算公式
希尔排序递增序列计算实现
希尔排序倒序遍历递增序列
希尔排序详细步骤
希尔排序代码实现
希尔排序对比插入排序性能
希尔排序的特点
排序算法:归并排序
归并排序的递归性质
归并排序总体代码实现
再次理解归并排序的代码
归并排序合并的逻辑讲解
归并排序合并的代码实现
归并排序拷贝代码实现
归并排序临时数组优化
归并排序合并代码的另一种实现
归并排序时间复杂度分析
自底朝上的归并排序逻辑
自底朝上归并排序实现
排序算法:快速排序
快速排序符合递归的三个条件
快排的递归代码实现
深入理解快排过程
分区的逻辑过程讲解
分区逻辑代码实现
快速排序的特点
快速排序的优化
三路快排的逻辑讲解
三路快排实现
排序算法:桶排序
桶排序的时间复杂度分析
桶排序的代码实现
桶排序的特点
桶排序解决外部排序
排序算法:计数排序
计数排序步骤详解
计数排序代码实现
计数排序的特点
考虑负数的计数排序
排序算法:基数排序
选择计数排序给基数排序的每位排序
基数排序实现按个位数排序
基数排序的代码实现
基数排序的特点
排序算法:Java 内置排序算法
排序算法选择的建议
平方时间复杂度算法对比 nlogn 算法
如何写一个通用的排序算法
引用类型实现 Comparable 可比较
引用类型实现 Comparator 可比较
引用类型数组排序(Comparable)
引用类型数组排序(Comparator)
引用类型数组排序需要稳定
动态数组的排序
分治思想
leetcode 56 号算法题:合并区间
解题思路
leetcode 252 号算法题:会议室
leetcode 179 号算法题:最大数
剑指 offer 第 45 号算法题:把数组排成最小的数
leetcode 75 号算法题:颜色分类
计数排序解决问题
计数排序解决方案代码实现
三路快排分区解决问题
三路快排解决方案代码实现
leetcode 164 号算法题:最大间距
基数排序解决方案
桶排序解决方案思路
桶排序解决方案详细步骤
桶排序代码实现
剑指 offer 第 51 号算法题:数组中的逆序对
数组中的逆序对题目解释
数组中的逆序对暴力解法
数组中的逆序对归并排序解法
数组中的逆序对归并代码实现
二分查找:最基本的二分查找算法
二分查找实现思路
二分查找时间复杂度
二分查找代码实现
解决计算中间索引溢出的问题
二分查找的其他细节问题
递归实现二分查找
对降序数组进行二分查找
二分查找:二分查找的变形问题
查找第一个等于目标值的下标代码实现
查找第一个大于等于目标值的下标
查找第一个大于等于目标值下标代码实现
查找最后一个等于目标值的下标
查找最后一个小于等于目标值的下标
二分查找:应用--如何快速定位 IP 对应的省份
如何快速定位 ip 所属城市二分查找思路
IP 地址数据预处理
二分查找实现快速定位 ip
二分查找实现快速定位 ip 代码说明
leetcode 704 号算法题:二分查找
最基本的二分查找算法实现
二分查找的两种思路
二分查找第二种思路代码实现
二分查找第二种思路第二种代码实现
二分查找思路二的另一种代码实现
leetcode 34 号算法题:排序数组中找元素的第一个和最后一个位置
总体流程代码实现
二分查找思路一代码实现
二分查找思路二代码实现
leetcode 35 号算法题:搜索插入位置
leetcode 33 号算法题:搜索旋转排序数组
什么是旋转排序数组
剑指 offer 第 11 号算法题:旋转排序数组的最小数字
暴力遍历提前退出优化
二分查找求解
含有重复元素的二分查找
leetcode 852 号算法题:山脉数组的峰顶索引
线性扫描解法
二分查找实现步骤
leetcode 1095 号算法题:山脉数组中查找目标值
链表相关算法:基础知识
数组转成链表
计算链表节点个数
计算链表等于目标值的节点个数
leetcode 203 号算法题:移除链表元素
删除表头节点
删除非表头节点
虚拟节点统一删除逻辑
leetcode 206 号算法题:反转链表
迭代解法
为什么可以使用递归实现
leetcode 876 号算法题:链表的中间节点
两遍扫描法
快慢指针解法
leetcode 19 号算法题:删除链表的倒数第N个节点
基本解法
leetcode 21 号算法题:合并两个有序链表
迭代解法代码实现
递归解法
递归解法代码实现
leetcode 23 号算法题:合并K个升序链表
顺序合并
分治解法
leetcode 147 号算法题:对链表进行插入排序
插入排序的详细步骤
leetcode 148 号算法题:排序链表
归并排序算法步骤
归并排序递归实现
归并排序(自底朝上)步骤
链表切割
切割合并控制流程
链表合并逻辑
链表合并代码实现

1、汤老师将这么难得数据结构与算法内容通过生动的动画讲的通俗易懂,以前对数据结构与算法非常的恐惧,特别是归并排序,快速排序等,现在是测底的理解,并且可以自己手写快速排序的代码了,很多知识之前也很零散,经过汤老师这么一整理,所有的零散知识都串起来了,感觉没那么容易忘记了,老汤老师,威武!!!
2、讲课风格通俗易懂,让学算法题不那么费劲
3、这个课程花得很值得,讲得非常详细,是我见过算法课程当中讲得最好的课程!汤老师课后服务也是挺负责任的,赞赞赞!

原创文章,作者:亲测学习网,如若转载,请注明出处:http://www.qince.net/shujujiegou-java-video.html

(1)
上一篇 2021年1月13日 上午12:33
下一篇 2021年1月13日 上午12:41

猜你喜欢

发表评论

登录后才能评论