Java 中的算法数据结构 #1(+面试问题)
基本算法和数据结构:AVL 树、二叉搜索树、数组、B 树、链表、堆栈和 HashMap
讲师:Holczer Balazs
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将会学到的
- 掌握算法和数据结构的基础知识
- 检测非最佳代码片段
- 了解数组和链表
- 了解堆栈和队列
- 了解二叉搜索树
- 了解平衡二叉搜索树,例如 AVL 树或红黑树
- 了解优先队列和堆
- 了解 B 树和外部存储器
- 了解哈希和哈希表
要求
- 基本 Java(循环和一些 OOP)
说明
本课程是关于数据结构和算法的。我们将在Java中实现这些问题。完成该课程大约需要14 个小时。强烈建议您自己多敲几次这些数据结构,以便更好地掌握它。
第 1 节:
- 数据结构和抽象数据类型
第 2 节 – 数组
- 什么是数组
- 什么是随机访问以及如何索引
第 3 节 – 链表
- 链表和双向链表
- 链表相关面试题
第 2 节 – 堆栈和队列:
- 什么是栈和队列
- 堆内存和栈内存
- 可视化堆栈内存
第 3 节 – 二叉搜索树 (BST):
- 什么是树数据结构?
- 如何实现O(logN) 对数运行时间?
- 二叉搜索树
第 4 节 – AVL 树
- 二叉搜索树有什么问题?
- 平衡搜索树:AVL树
- 旋转
第 5 节 – 红黑树
- 什么是红黑树?
- 什么是恢复操作?
- 比较AVL树和红黑树
第 6 节 – 八字树
- 展开树和缓存
- 获得最近访问的项目的运行时间达到O(1)
第 7 节 – 堆和优先级队列
- 什么是优先队列?
- 什么是堆数据结构?
- 如何用堆在O(NlogN)中进行排序?
第 8 节 – B 树
- 外部存储器和主存储器(RAM)
- B树及其在内存中的应用
- B*树和B+树
第 9 节 – 散列和 HashMaps:
- 什么是哈希和哈希表(hashmaps)
- 什么是散列函数
- 如何实现O(1)运行时间复杂度
第 10 节 – 排序算法
- 基本排序算法
- 冒泡排序和选择排序
- 插入排序和壳排序
- 快速排序和归并排序
- 基于比较和非比较的方法
- 字符串排序算法
- 桶排序和基数排序
第 11 节 – 子串搜索算法
- 子串搜索 算法
- 暴力子串搜索
- Z 子串搜索算法
- Rabin-Karp 算法和散列
- Knuth-Morris-Pratt (KMP) 子串搜索算法
第 12 节(奖金):
- 什么是 LRU 缓存
- LRU缓存实现
第 13 节(奖金):
- Fenwick 树(二进制索引树)
- 二叉索引树实现
第 14 节 – 算法分析
- 如何衡量算法的运行时间
- 使用大O (ordo)、大Ω (omega) 和大θ (theta) 符号进行运行时间分析
- 复杂度等级
- 多项式 (P) 和非确定性多项式 (NP) 算法
- O(1)、O(logN)、O(N) 和其他几个运行时间复杂度
在每一章中,您将了解每个算法或数据结构的理论背景,然后我们将在Eclipse、Java中逐步编写代码。
大多数高级算法都严重依赖于这些主题,因此绝对值得了解基础知识。这些原则可用于多个领域:投资银行、人工智能或股票市场上的电子交易算法。
感谢您加入课程,让我们开始吧!
此课程面向哪些人:
- 本课程适用于从科学家到软件开发人员的每个人,他们希望在主要领域更接近算法思维
声明:口袋资源网(koudaizy.com)提供的所有课程、素材等资源全部来源于互联网,赞助VIP仅用于对口袋资源服务器带宽及网站运营等费用支出做支持,从本站下载资源,说明你已同意本条款。