This course is about data structures and algorithms. We are going to implement the problems in Java. The course takes approximately 14 hours to complete. It is highly recommended to type out these data structures several times on your own in order to get a good grasp of it.
Section 1:
Section 2 - Arrays
Section 3 - Linked Lists
Section 2 - Stacks and Queues:
Section 3 - Binary Search Trees (BSTs):
Section 4 - AVL Trees
Section 5 - Red-Black Trees
what are red-black trees?
what is recovering operation?
comparing AVL trees and red-black trees
Section 6 - Splay Trees
Section 7 - Heaps and Priority Queues
what are priority queues?
what is heap data structure?
how to do sorting in O(NlogN) with heaps?
Section 8 - B-Trees
Section 9 - Hashing and HashMaps:
Section 10 - Sorting Algorithms
basic sorting algorithms
bubble sort and selection sort
insertion sort and shell sort
quicksort and merge sort
comparison based and non-comparison based approaches
string sorting algorithms
bucket sort and radix sort
Section 11 - Substring Search Algorithms
substring search algorithms
brute-force substring search
Z substring search algorithm
Rabin-Karp algorithm and hashing
Knuth-Morris-Pratt (KMP) substring search algorithm
Section 12 (BONUS):
what is LRU cache
LRU cache implementation
Section 13 (BONUS):
Section 14 - Algorithms Analysis
how to measure the running time of algorithms
running time analysis with big O (ordo), big Ω (omega) and big θ (theta) notations
complexity classes
polynomial (P)and non-deterministic polynomial (NP)algorithms
O(1), O(logN), O(N) and several other running time complexities
In each chapter you will learn about the theoretical background of each algorithm or data structure, then we are going to write the code on astep by step basisin Eclipse, Java.
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.
Thanks for joining the course, let's get started!