Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Advanced Data Structures and Algorithms in Python
Rating: 3.8 out of 5(26 ratings)
302 students

Advanced Data Structures and Algorithms in Python

Develop new algorithms and solutions to problems by combining advanced algorithms creatively in Python
Last updated 11/2019
English

What you'll 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

Course content

7 sections33 lectures4h 10m total length
  • The Course Overview3:00

    This video will give you an overview about the course.

  • From Painfully Slow to Optimal: The Maximum Sum Subarray5:35

    This video presents the optimal solution (Kadane’s algorithm) for the maximum sum subarray problem and how to arrive at it by optimizing less efficient algorithms.

       •  Understand the problem with examples

       •  Go over some naive solutions

       •  Arrive at the optimal solution and implement it

  • Find the Factorial with a Given Number of Zeros8:43

    The video explains how to find a factorial, that ends with a given number of trailing zeros, by using some mathematical reasoning and a binary search.

       •  Introduce factorials

       •  Efficiently counting trailing zeros in n factorial

       •  Implement the solution using binary search

  • Find the Given-Length Subarray with the Maximum Minimum12:14

    Explain the problem requirements with reference to video 1.4

       •  Understand why binary search and deque is adequate here

       •  Implement the solution, think about an even faster solution

       •  Implement the optimal solution using a deque

  • Array Problems Involving Modulos7:45

    Understand the problem with examples

       •  Draw some parallels to video 1.5

       •  Implement the discussed solution

       •  Implement an efficient solution for the problem

  • Useful Math: The Inclusion-Exclusion Principle6:35

    The video presents the inclusion-exclusion principle and its application to two basic problems, as well as a recursive implementation for one of the problems.

       •  Understand the inclusion-exclusion principle and why it is useful

       •  Solve a problem mathematically using inclusion-exclusion principle

       •  Understand the inclusion-exclusion solution for a problem

  • Test Your Knowledge

Requirements

  • This course is for developers who have basic programming knowledge in Python and are seeking to learn about the advanced algorithms and data structures that can be used in Python in various applications, including web and mobile solutions.

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

Who this course is for:

  • The topics presented here are suitable for programmers with various levels of experience.