Algorithms and Data Structures in Python
4.2 (381 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,270 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Algorithms and Data Structures in Python to your Wishlist.

Add to Wishlist

Algorithms and Data Structures in Python

A guide to implement the most up to date algorithms from scratch: arrays, linked lists, graph algorithms and sorting
Best Seller
4.2 (381 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,270 students enrolled
Created by Holczer Balazs
Last updated 8/2017
English
Current price: $10 Original price: $35 Discount: 71% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 12.5 hours on-demand video
  • 4 Articles
  • 4 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Have a good grasp of algorithmic thinking
  • Be able to develop your own algorithms
  • Be able to detect and correct inefficient code snippets
View Curriculum
Requirements
  • Python basics
  • Some theoretical background ( big O notation )
Description

This course is about data structures and algorithms. We are going to implement the problems in Python, but I try to do it as generic as possible: so the core of the algorithms can be used in C++ or Java. I highly recommend typing out these data structures and algorithms several times on your own in order to get a good grasp of it.

In the first part of the course we are going to learn about basic data structures such as linked lists, stacks, queues, binary search trees, heaps and some advanced ones such as AVL trees and red-black trees.. The second part will be about graph algorithms such as spanning trees, shortest path algorithms and graph traversing. We will try to optimize each data structure as much as possible.

In each chapter I am going to talk about the theoretical background of each algorithm or data structure, then we are going to write the code step by step in Python.

Most of the advanced algorithms relies heavily on these topics so it is definitely worth understanding the basics. These principles can be used in several fields: in investment banking, artificial intelligence or electronic trading algorithms on the stock market. Research institutes use Python as a programming language in the main: there are a lot of library available for the public from machine learning to complex networks.

Who is the target audience?
  • This course is suited for anyone who has some basic knowledge in python
Compare to Other Data Structures Courses
Curriculum For This Course
129 Lectures
12:41:56
+
Introduction
4 Lectures 10:03



Complexity theory
00:05

Data structures and abstract data types quiz
2 questions
+
Setup
1 Lecture 03:18
+
Data Structures - Linked Lists
9 Lectures 50:11

Linked list introduction - operations
09:32

Linked list theory - doubly linked list
01:40

Linked list introduction - linked lists versus arrays
06:36


Linked list implementation II - traverse
04:07

Linked list implementation III - remove
03:29

Linked list implementation IV - testing
04:43

Doubly linked list introduction
05:59

Lists Quiz
3 questions
+
Data Structures - Stacks & Queues
6 Lectures 36:39
Stack introduction
04:00

Stacks in memory management ( stacks, heaps )
07:23

Stacks and recursive method calls
07:02

Stack implementation
07:02

Queue introduction
05:12

Queue implementation
06:00

Stack & Queue Quiz
3 questions
+
Data Structures - Binary Search Trees
11 Lectures 58:15
Binary search trees theory - basics
10:23

Binary search trees theory - search, insert
04:25

Binary search trees theory - delete
06:08

Binary search trees theory - in-order traversal
04:25

Binary search trees theory - running times
02:10

Binary search tree implementation I - Node class
02:40

Binary Search Tree implementation II - insert
06:55

Binary Search Tree implementation III - traverse, min, max
06:11

Binary Search Tree implementation IV - testing insertion
02:30

Binary Search Tree implementation V - deletion
08:45

Binary Search Tree implementation VI - testing deletion
03:43

Binary Search Trees Quiz
5 questions
+
Data Structures - Balanced Binary Trees (AVL Trees)
13 Lectures 01:22:23
AVL trees introduction - motivation
04:13

AVL trees introduction - basics
05:21

AVL trees introduction - height
08:44

AVL trees introduction - rotations cases
10:17

AVL trees introduction - illustration
10:50

AVL trees introduction - applications
03:38

AVL tree implementation I - Node
03:39

AVL tree implementation II - height, balance
04:55

AVL tree implementation III - rotations
06:43

AVL tree implementation IV - insertion
03:01

AVL tree implementation V - violations
07:31

AVL tree implementation VI - testing insertion
05:39

AVL tree implementation VII - remove
07:52
+
Data Structures - Balanced Binary Trees (Red-Black Trees)
8 Lectures 38:47
Red-black trees introduction - basics
10:38

Red-black trees rotations- cases I
05:10

Red-black trees rotations- cases II
04:25

Red-black trees rotations- cases III
03:17

Red-black trees rotations- cases IV
02:46

Red-black trees introduction - example I
04:47

Red-black trees introduction - example II
04:19

Red-black tree versus AVL tree
03:25

Balanced Trees Quiz
3 questions
+
Data Structures - Heaps
11 Lectures 01:05:06
Priority queues introduction
08:13

Heap introduction - basics
08:14

Heap introduction - array representation
09:17

Heap introduction - remove operation
04:43

Heap introduction - heapsort
05:13

Heap introduction - operations complexities
05:05

Other types of heaps: binomial and Fibonacci heap
02:59

Heap implementation I - insert
07:45

Heap implementation II - heapsort
03:51

Heap implementation III - fixing heap properties
05:51

Heaps in Python
03:55

Heaps Quiz
3 questions
+
Data Structures - Associative Arrays / Dictionaries
8 Lectures 45:05
Associative array ADT
02:37

Hashtable introduction - basics
09:04

Hashtable introduction - collisions
06:59

Hashtable introduction - dynamic resizing
06:03

Linear probing implementation I - hashfunction
05:34

Linear probing implementation II - insert
05:11

Linear probing implementation III - retreive
03:01

Dictionaires in Python
06:36

Dictionaries Quiz
5 questions
7 More Sections
About the Instructor
Holczer Balazs
4.4 Average rating
3,959 Reviews
39,056 Students
24 Courses
Software Engineer

Hi!

My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist and later on I decided to get a master degree in applied mathematics. 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. Quantitative analysts use these algorithms and numerical techniques on daily basis so in my opinion these topics are definitely worth learning.

Take a look at my website and join my email list if you are interested in these topics!