Advanced Data Structures and Algorithms in Python

Develop new algorithms and solutions to problems by combining advanced algorithms creatively in Python

3.30 (26 reviews)
Udemy
platform
English
language
Programming Languages
category
299
students
4 hours
content
Nov 2019
last update
$54.99
regular price

What you will learn

Improve your problem-solving skills by learning how to approach some out-of-the-box problems

Develop new algorithms and solutions to problems by combining other algorithms in creative ways

Write clean implementations that significantly improve an algorithm’s runtime by taking advantage of various tips and tricks

Avoid certain misconceptions circulating online by discovering how they (probably) got started and learning how to avoid falling for similar ones in the future

Find out why algorithms are not scary things professors and interviewers use to frighten people

Description

As a developer, you’ll have certainly heard about various data structures and algorithms. However, have you ever thought profoundly about them and their impact on the performance of your applications? If not, it’s high time to take a look at this topic, and this course is a one-stop guide to master it!

This course will teach you the necessary theory and applications to properly understand the advanced algorithms and data structures that are critical to various problems and how to implement them. We’ll also go hands-on and reveal tips and tricks for optimizations, identifying the right approaches and presenting convincing explanations. And, you will get it all in a modern, popular, and well-documented language: Python. Finally, you’ll learn how to develop complex algorithms that are easy to understand, debug, and reusable in various applications.

By the end of the course, you’ll know how to develop complex algorithms that are easy to understand, debug, and reusable in various applications.

About the Author

Vlad Sebastian Ionescu is first and foremost a teacher. He holds a Ph.D. in Machine Learning and currently various university courses and tutorials covering languages and concepts such as Python, Java, algorithms and data structures, C#, machine learning, and web development.

He also possesses a Stack Overflow gold badge in algorithmic tagging.

His philosophy is "if I can't explain it well enough for most people to understand it, I need to go back and understand it better myself before trying again". He has personally run into all of the problems discussed in the course at some point in his professional life. This makes him adept at understanding programming problems – and, more critically, how to resolve them… and how to explain the solutions

Content

Doing a Lot with Very Little

The Course Overview
From Painfully Slow to Optimal: The Maximum Sum Subarray
Find the Factorial with a Given Number of Zeros
Find the Given-Length Subarray with the Maximum Minimum
Array Problems Involving Modulos
Useful Math: The Inclusion-Exclusion Principle
Test Your Knowledge

More Complex Algorithms on Arrays

Rolling Hashes for Constructing a Palindrome
Efficiently Counting Subarrays with a Given Sum
Binary Searching for an Optimal Subarray Length
Manacher’s Algorithm
Optimizing the Sieve of Eratosthenes
Test Your Knowledge

General Recursive Algorithms

The Towers of Hanoi with Four Pegs
Evaluating Arithmetic Expressions with a Recursive Descent Parser
Matrix Exponentiation and Fibonacci-Like Functions
A Sum of Powers
Finding a Permutation with a Given Property
Test Your Knowledge

Dynamic Programming

What Is DP?
The Minimum Sum Path in a Matrix
A More Complex Minimum Sum Path in a Matrix
Counting the Number of Ways to Paint a Fence
Counting Increasing Subsequences
Test Your Knowledge

Advanced Dynamic Programming

Counting Digit Sums Divisible by d
Range Minimum Queries with DP
Another Matrix Path Problem
Dynamic Programming on Trees
TSP and the Held-Karp Algorithm
Test Your Knowledge

Tree-Based Data Structures

Segment Trees and the RMQ Problem
Segment Trees with Lazy Updates
Binary Indexed Trees
Binary Indexed Trees for the RMQ Problem
Treaps
Test Your Knowledge

Graph Theory Algorithms

The Lowest Common Ancestor
The Shortest Path and Back
Test Your Knowledge

Screenshots

Advanced Data Structures and Algorithms in Python - Screenshot_01Advanced Data Structures and Algorithms in Python - Screenshot_02Advanced Data Structures and Algorithms in Python - Screenshot_03Advanced Data Structures and Algorithms in Python - Screenshot_04

Reviews

Kemal
August 25, 2020
The explanations can be quite confusing. I recommend that more time is spent on explaining fundamentals, rather than discussing/writing code in the videos.
John
May 27, 2020
Bravo, kind sir. Kindly let me know when you lead more Packt classes (particularly algorithms in Python/Julia).

Charts

Price

Advanced Data Structures and Algorithms in Python - Price chart

Rating

Advanced Data Structures and Algorithms in Python - Ratings chart

Enrollment distribution

Advanced Data Structures and Algorithms in Python - Distribution chart

Related Topics

2460334
udemy ID
7/15/2019
course created date
11/16/2020
course indexed date
Bot
course submited by