Advanced Algorithms and Data Structures in Python
Python 中的高级算法和数据结构
Fenwick trees, Caches, Splay Trees, Prefix Trees (Tries), Substring-Search Algorithms and Travelling Salesman Problem
Fenwick 树、缓存、张开树、前缀树(尝试)、子字符串搜索算法和旅行推销员问题
教程演示🔗
你将学到什么
- 掌握算法思维
- 能够开发自己的算法
- 能够检测并纠正低效的代码片段
- 了解芬威克树
- 了解缓存(LRU 缓存和展开树)
- 了解尝试和三元搜索树
- 了解子串搜索算法(Rabin-Karp 方法、KMP 算法和 Z 算法)
- 了解哈密顿循环问题(和旅行商问题)
- 理解欧拉循环问题
要求
- Python 基础知识
- 一些理论背景(大O符号)
描述
本课程适合那些对计算机科学感兴趣并希望用Python实现算法和给定数据结构的人。在每一章中,您将学习给定数据结构或算法的理论,然后从头开始实现它们。
第 1 章:二元索引树(Fenwick 树)
二叉索引树或芬威克树数据结构背后的理论
如何在计算机视觉和人工智能中使用这种数据结构
Python 中的实现
第 2 章:LRU 缓存
什么是缓存以及它们为何如此重要
如何使用双向链表实现缓存
LRU 缓存背后的理论
Python 中的实现
第 3 章:八字树
什么是八字树
如何用展开树实现缓存
第 4 章:B 树
外部存储器和内部存储器(RAM)
外部存储器的数据结构
具有多个孩子和多个键的树
什么是B树数据结构?
第 5 章:前缀树(尝试)
什么是尝试或前缀树
尝试的现实世界应用
尝试的自动完成功能
用尝试排序
IP路由
第 6 章:三元搜索树
什么是三元搜索树
令人难以置信的尝试游戏
第 7 章:子串搜索算法
什么是子串搜索算法以及为什么它们在现实世界的软件中很重要
暴力子串搜索算法
散列法和 Rabin-Karp 方法
Knuth-Morris-Pratt 子串搜索算法
Z子串搜索算法(Z算法)
Python 中的实现
第 8 章:拓扑排序
什么是拓扑排序(拓扑排序)?
通过深度优先搜索实现拓扑排序
第 9 章:循环检测
如何检测图中的循环?
第 10 章:强连通分量(Tarjan 算法)
什么是强连通分量?
Tarjan 的深度优先搜索算法
第11章:哈密顿循环(旅行商问题)
图中的哈密顿循环
什么是旅行商问题?
如何使用回溯来解决问题
增强算法的元启发式方法
第12章:欧拉循环(中国邮递员问题)
图中的欧拉循环
中国邮递员问题是什么?
感谢您参加我的课程,让我们开始吧!
本课程适合谁:
本课程适合任何具有 Python 基础知识并对算法和数据结构感兴趣的人