Find online courses made by experts from around the world.
Take your courses with you and learn anywhere, anytime.
Learn and practice realworld skills and achieve your goals.
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.
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.
Section 1: Introduction  

Lecture 1 
Introduction
Preview

02:06  
Lecture 2 
Why to use data structures

03:54  
Lecture 3 
Data structures and abstract data types

03:58  
Lecture 4 
Complexity theory

Article  
Section 2: Setup  
Lecture 5 
Installing python
Preview

03:18  
Lecture 6 
Installing LiClipse

03:43  
Section 3: Data Structures  Arrays  
Lecture 7 
Arrays introduction  basics

05:55  
Lecture 8 
Arrays introduction  operations

05:53  
Lecture 9 
Arrays in Python
Preview

11:14  
Section 4: Data Structures  Linked Lists  
Lecture 10 
Linked list introduction  basics
Preview

07:09  
Lecture 11 
Linked list introduction  operations

09:32  
Lecture 12 
Linked list theory  doubly linked list

01:40  
Lecture 13 
Linked list introduction  linked lists versus arrays

06:36  
Lecture 14 
Linked list implementation I  insert
Preview

06:56  
Lecture 15 
Linked list implementation II  traverse

04:07  
Lecture 16 
Linked list implementation III  remove

03:29  
Lecture 17 
Linked list implementation IV  testing

04:43  
Quiz 1 
Lists Quiz

3 questions  
Section 5: Data Structures  Stacks & Queues  
Lecture 18 
Stack introduction

04:00  
Lecture 19 
Stacks in memory management ( stacks, heaps )

07:23  
Lecture 20 
Stacks and recursive method calls

07:02  
Lecture 21 
Stack implementation

06:31  
Lecture 22 
Queue introduction

05:12  
Lecture 23 
Queue implementation

05:35  
Section 6: Data Structures  Binary Search Trees  
Lecture 24 
Binary search trees theory  basics

10:23  
Lecture 25 
Binary search trees theory  search, insert

04:25  
Lecture 26 
Binary search trees theory  delete

06:08  
Lecture 27 
Binary search trees theory  inorder traversal

04:25  
Lecture 28 
Binary search trees theory  running times

02:10  
Lecture 29 
Binary search tree implementation I  Node class

02:40  
Lecture 30 
Binary Search Tree implementation II  insert

06:55  
Lecture 31 
Binary Search Tree implementation III  traverse, min, max

06:11  
Lecture 32 
Binary Search Tree implementation IV  testing insertion

02:30  
Lecture 33 
Binary Search Tree implementation V  deletion

08:45  
Lecture 34 
Binary Search Tree implementation VI  testing deletion

03:43  
Quiz 2 
Binary Search Trees Quiz

3 questions  
Section 7: Data Structures  Balanced Binary Trees  
Lecture 35 
AVL trees introduction  motivation

04:13  
Lecture 36 
AVL trees introduction  basics

05:21  
Lecture 37 
AVL trees introduction  height

08:44  
Lecture 38 
AVL trees introduction  rotations cases

10:17  
Lecture 39 
AVL trees introduction  illustration

10:50  
Lecture 40 
AVL trees introduction  applications

03:38  
Lecture 41 
AVL tree implementation I  Node

03:39  
Lecture 42 
AVL tree implementation II  height, balance

04:55  
Lecture 43 
AVL tree implementation III  rotations

06:43  
Lecture 44 
AVL tree implementation IV  insertion

03:01  
Lecture 45 
AVL tree implementation V  violations

07:31  
Lecture 46 
AVL tree implementation VI  testing insertion

05:39  
Lecture 47 
AVL tree implementation VII  remove

07:52  
Quiz 3 
Balanced Trees Quiz

3 questions  
Section 8: RedBlack Tree  
Lecture 48 
Redblack trees introduction  basics

10:38  
Lecture 49 
Redblack trees rotations cases I

05:10  
Lecture 50 
Redblack trees rotations cases II

04:25  
Lecture 51 
Redblack trees rotations cases III

03:17  
Lecture 52 
Redblack trees rotations cases IV

02:46  
Lecture 53 
Redblack trees introduction  example I

04:47  
Lecture 54 
Redblack trees introduction  example II

04:19  
Lecture 55 
Redblack tree versus AVL tree

03:25  
Section 9: Data Structures  Heaps  
Lecture 56 
Priority queues introduction

08:13  
Lecture 57 
Heap introduction  basics

08:14  
Lecture 58 
Heap introduction  array representation

09:17  
Lecture 59 
Heap introduction  remove operation

04:43  
Lecture 60 
Heap introduction  heapsort

05:13  
Lecture 61 
Heap introduction  operations complexities

05:05  
Lecture 62 
Other types of heaps: binomial and Fibonacci heap

02:59  
Lecture 63 
Heap implementation I

04:05  
Lecture 64 
Heap implementation II  heapsort

06:06  
Lecture 65 
Heaps in Python

03:17  
Quiz 4 
Heaps Quiz

3 questions  
Section 10: Data Structures  Associative Arrays / Dictionaries  
Lecture 66 
Associative array ADT

02:37  
Lecture 67 
Hashtable introduction  basics

09:04  
Lecture 68 
Hashtable introduction  collisions

06:59  
Lecture 69 
Hashtable introduction  dynamic resizing

06:03  
Lecture 70 
Dictionaires in Python

02:48  
Quiz 5 
Dictionaries Quiz

4 questions  
Section 11: Data Structures  Tries  
Lecture 71 
Tries introduction

06:35  
Lecture 72 
Ternary search trees introduction  basics

03:57  
Lecture 73 
Ternary search trees introduction  operations

07:34  
Lecture 74 
Ternary search trees introduction  applications

03:34  
Lecture 75 
Ternary search trees implementation I

09:02  
Lecture 76 
Ternary search trees implementation II

05:45  
Quiz 6 
Tries Quiz

1 question  
Section 12: Graph Algorithms  
Lecture 77 
Graph theory

06:54  
Lecture 78 
Euler cycles introduction  chinese postman problem

10:49  
Section 13: Graph Algorithms  Graph Traversal Algorithms  
Lecture 79 
Breadthfirst search introduction

09:31  
Lecture 80 
Breadthfirst search implementation

09:47  
Lecture 81 
Depthfirst search introduction

10:22 
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 BlackScholes model, or the Mertonmodel. Quantitative analysts use these algorithms and numerical techniques on daily basis so in my opinion these topics are definitely worth learning.