Algorithms and Data Structures in Python

A guide to implement the most up to date algorithms from scratch
4.0 (98 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.
1,374 students enrolled
Instructed by Holczer Balazs IT & Software / Other
$50
Take This Course
  • Lectures 113
  • Contents Video: 11.5 hours
    Other: 0 mins
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 4/2015 English

Course Description

Hi!

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. The course takes approximately 4 hours to complete. 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, heaps and some advanced ones such as ternary search trees. The second part will be about graph algorithms. 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 LiClipse, 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.

What are the requirements?

  • Python basics
  • Some theoretical background ( big O notation )

What am I going to get from this course?

  • Have a good grasp of algorithmic thinking
  • Be able to develop your own algorithms
  • Be able to detect and correct inefficient code snippets

What is the target audience?

  • This course is suited for anyone who has some basic knowledge in python

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction
Introduction
Preview
02:06
Why to use data structures
03:54
Data structures and abstract data types
03:58
Section 2: Setup
Installing python
Preview
03:18
Installing LiClipse
03:43
Section 3: Complexity Theory
Complexity notations
09:31
Complexity notations example
09:10
Algorithm running times
09:37
Complexity classes
07:13
Complexity Quiz
2 questions
Section 4: Data Structures - Arrays
Arrays introduction - basics
05:55
Arrays introduction - operations
05:53
Arrays in Python
Preview
11:14
Section 5: Data Structures - Linked Lists
Linked list introduction - basics
Preview
07:09
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 I - insert
Preview
06:56
Linked list implementation II - traverse
04:07
Linked list implementation III - remove
03:29
Linked list implementation IV - testing
04:43
Lists Quiz
3 questions
Section 6: Data Structures - Stacks & Queues
Stack introduction
04:00
Stacks in memory management ( stacks, heaps )
07:23
Stacks and recursive method calls
07:02
Stack implementation
06:31
Queue introduction
05:12
Queue implementation
05:35
Section 7: Data Structures - Binary Search Trees
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
05:18
Binary Search Tree implementation II
04:35
Binary Search Trees Quiz
3 questions
Section 8: Data Structures - Balanced Binary Trees
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
02:22
AVL tree implementation II
06:02
Balanced Trees Quiz
3 questions
Section 9: Red-Black Tree
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
Section 10: Data Structures - Heaps
Priority queues introduction
05:58
Heap introduction - basics
05:34
Heap introduction - array representation
06:41
Heap introduction - remove operation
03:23
Heap introduction - heapsort
05:22
Heap introduction - operations complexities
02:16
Other types of heaps: binomial and Fibonacci heap
02:59
Heap implementation I
04:05
Heap implementation II - heapsort
06:06
Heaps in Python
03:17
Heaps Quiz
3 questions
Section 11: Data Structures - Associative Arrays / Dictionaries
Associative array ADT
02:37
Hashtable introduction - basics
09:04
Hashtable introduction - collisions
06:59
Hashtable introduction - dynamic resizing
06:03
Dictionaires in Python
02:48
Dictionaries Quiz
4 questions
Section 12: Data Structures - Tries
Tries introduction
06:35
Ternary search trees introduction - basics
03:57
Ternary search trees introduction - operations
07:34
Ternary search trees introduction - applications
03:34
Ternary search trees implementation I
09:02
Ternary search trees implementation II
05:45
Tries Quiz
1 question
Section 13: Graph Algorithms
Graph theory
06:54
Euler cycles introduction - chinese postman problem
10:49
Section 14: Graph Algorithms - Graph Traversal Algorithms
Breadth-first search introduction
09:31
Breadth-first search implementation
09:11
Depth-first search introduction
10:22
Depth-first search implementation
08:38
Section 15: Graph Algorithms - Shortest Paths
Dijkstra algorithm introduction - basics
05:35
Dijkstra algorithm introduction - algorithm
05:44

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Holczer Balazs, 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.

Ready to start learning?
Take This Course