Advanced Algorithms and Data Structures in Python

Fenwick trees, Caches, Splay Trees, Prefix Trees (Tries), Substring-Search Algorithms and Travelling Salesman Problem

4.80 (61 reviews)
Udemy
platform
English
language
Software Engineering
category
instructor
Advanced Algorithms and Data Structures in Python
2,939
students
10.5 hours
content
Jan 2022
last update
$69.99
regular price

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

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!


Content

Introduction

Introduction

Fenwick Trees (Binary Indexes Trees)

Fenwick trees theory I - basics
Fenwick trees theory II - tree structure
Fenwick trees theory III - update
Fenwick trees implementation

LRU Cache

Why to use cache?
LRU cache illustration
LRU cache implementation I
LRU cache implementation II

Tries - Prefix Trees

Tries data structure introduction
Tries data structure illustration
Tries data structure implementation I
Tries data structure implementation II
Tries data structure implementation III
Tries and longest common prefix problem
Tries data structure as associative arrays
Tries data structure applications

Substring Search Algorithms

Brute-force substring search algorithm
Brute-force substring search algorithm implementation
Boyer-Moore algorithm
Boyer-Moore algorithm illustration
Boyer-Moore algorithm implementation
Knuth-Morris-Pratt algorithm
Knuth-Morris-Pratt algorithm implementation

Course Materials (DOWNLOADS)

Course materials

DISCOUNT FOR OTHER COURSES!

90% OFF For Other Courses

Reviews

Jiefei
August 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.
Jay
November 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!
Rushitaa
March 20, 2019
it was very good and knowledgeable. but a test could have been conducted in the end to certify the course.

Coupons

DateDiscountStatus
11/16/201950% OFF
expired
4/18/202150% OFF
expired
7/14/202388% OFF
expired

Charts

Price

Advanced Algorithms and Data Structures in Python - Price chart

Rating

Advanced Algorithms and Data Structures in Python - Ratings chart

Enrollment distribution

Advanced Algorithms and Data Structures in Python - Distribution chart
1985884
udemy ID
10/24/2018
course created date
11/16/2019
course indexed date
Bot
course submited by