Advanced Algorithms and Data Structures in Python (Udemy.com)
Fenwick trees, Caches, Splay Trees, Prefix Trees (Tries), Substring-Search Algorithms and Travelling Salesman Problem
Created by: Holczer Balazs
Last updated January 2022
What you will learn
- Have a good grasp of algorithmic thinking
- Be able to develop your own algorithms
- Be able to detect and correct inefficient code snippets
- Understand Fenwick trees
- Understand caches (LRU caches and Splay Trees)
- Understand tries and ternary search trees
- Understand substring search algorithms (Rabin-Karp method, KMP algorithm and Z algorithm)
- Understand the Hamiltonian cycle problem (and travelling salesman problem)
- Understand Eulerian cycle problem
How it compares
Against the other 86 rated Udemy courses in Data Structures and Algorithms on CourseDuck:
- Rating4.6 out of 5higher than 66% of them
- Reviews74#78 of 87 by number of reviews
- Length10.3 hoursshorter than 55% of them
- Last updatedJanuary 2022earlier than 68% of them
Course Description
This course is for those who are interested in computer science and want to implement the algorithms and given data structures in Python. In every chapter you will learn about the theory of a given data structure or algorithm and then you will implement them from scratch.
Chapter 1: Binary Indexed Trees (Fenwick Trees)
theory behind the binary indexed tree or Fenwick tree data structure
how to use this data structure in computer vision and artificial intelligence
implementation in Python
Chapter 2: LRU Caches
what are caches and why are they so important
how to use doubly linked lists to implement caches
theory behind LRU caches
implementation in Python
Chapter 3: Splay Trees
what are splay trees
how to achieve caches with splay trees
Chapter 4: B-Trees
external memory and internal memory (RAM)
data structures for the external memory
trees with multiple children and multiple keys
what are B-tree data structures?
Chapter 5: Prefix Trees (Tries)
what are tries or prefix trees
real world applications of tries
autocomplete feature of tries
sorting with tries
IP routing
Chapter 6: Ternary Search Trees
what are ternary search trees
boggle game with tries
Chapter 7: Substring Search Algorithms
what are substring search algorithms and why are they important in real world softwares
brute-force substring search algorithm
hashing and Rabin-Karp method
Knuth-Morris-Pratt substring search algorithm
Z substring search algorithm (Z algorithm)
implementations in Python
Chapter 8: Topological Ordering
what is topological ordering (topological sort)?
topological ordering implementation with depth-first search
Chapter 9: Cycle Detection
how to detect cycles in graphs?
Chapter 10: Strongly Connected Components (Tarjan's Algorithm)
what are strongly connected components?
Tarjan's algorithm with depth-first search
Chapter 11: Hamiltonian cycles (Travelling Salesman Problem)
Hamiltonian cycles in graphs
what is the travelling salesman problem?
how to use backtracking to solve the problem
meta-heuristic approaches to boost algorithms
Chapter 12: Eulerian Cycles (Chinese Postman Problem)
Eulerian cycles in graphs
what is the chinese postman problem?
Thanks for joining my course, let's get started!
Instructor Details
- 4.6 Rating
74 Reviews
Holczer Balazs
My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model.
Take a look at my website if you are interested in these topics!
More courses by Holczer Balazs
Python Data Structures And Algorithms: Practical Course (2026)
4.7 (4,432 Reviews)
Provider: Udemy
Time: 23.6h
$16.99
Concurrency, Multithreading and Parallel Computing in Java (2026)
4.5 (4,034 Reviews)
Provider: Udemy
Time: 14.4h
$10.99
Software Architectures (SOLID) & Design Patterns in Java (2026)
4.6 (3,772 Reviews)
Provider: Udemy
Time: 9.4h
$11.99
Introduction to Collections, Generics & Reflection in Java (2026)
4.5 (3,649 Reviews)
Provider: Udemy
Time: 11h
$10.99
Algorithms Data Structures in Java #1 (+INTERVIEW QUESTIONS) (2026)
4.7 (3,235 Reviews)
Provider: Udemy
Time: 22.1h
$13.99
Quantitative Finance & Algorithmic Trading in Python (2026)
4.6 (2,714 Reviews)
Provider: Udemy
Time: 18.3h
$13.99
More Data Structures and Algorithms courses
JavaScript Data Structures & Algorithms + LEETCODE Exercises (2026)
4.9 (4,131 Reviews)
Provider: Udemy
Time: 9.6h
$119.99
Data Structures & Algorithms: Coding Interview Masterclass (2026)
4.8 (15,900 Reviews)
Provider: Udemy
Time: 10.8h
$99.99
Master the Coding Interview: Big Tech (FAANG) Interviews (2026)
4.8 (6,000 Reviews)
Provider: Udemy
Time: 36.8h
$109.99
Mastering critical SKILLS in Algorithms using C++: Part 1 (2023)
4.8 (598 Reviews)
Provider: Udemy
Time: 18.9h
$84.99
Reviews
By Gusst Zanna on 6/26/2025
This guy is just too damn good!
By Mürşide Aki on 1/7/2024
It is very useful course and I learned lots of things thank you:)
By Jiefei Wang on 8/17/2023
Overall it is great. A bit easier than than the expectation. Some part of contents are not consistent in this version. For example, the Caches section refers to Splay Tree, which is the section after the Caches in this version; the Splay Tree section refers to Red-Black tree, which is removed in this version.
By Alexroy on 1/5/2023
the instructor is amazing, explanation is crystal clear, knowledge is next level
By Dmitry Karlov on 12/19/2022
It would be great to add coding exercises.
By Jay Pedersen on 11/22/2022
Visualization of algorithms is the strength of this course. You are also provided with working python code. I believe I tried each python program and did not have any issue with them. That is a nice treat. Excellent course!
By Linan Su on 11/6/2022
Excellent course on Algorithm and Data Structure. I enjoy it very much.
By Abhinav Kumar on 9/30/2021
Some implementation are missing. Like Chinese and N-nary tree. Otherwise great.
By Malhar Vora on 8/8/2021
IMHO speech has to be a bit slow. Author continuously speaks which feels overwhelming sometimes.
By Jim Woodward on 9/7/2020
The explanations are very clear and the content is outstanding.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 92 / 100











