This course is for those who are interested in computer science and want to implement the algorithms and given data structures in C++ from scratch. In every chapter you will learn about the theory of a given data structure or algorithm and then you will implement them from scratch.
Chapter 1: Recursion
theory behind recursion (recursive function calls)
stack memory and heap memory
recursion and stack memory of the OS
recursive problems such as the Towers of Hanoi problem
Chapter 2: Backtracking
what is backtracking
how to solve problems with backtracking
N-queens problem
coloring problem
knight's tour
Chapter 3: Dynamic Programming
overlapping subproblems and dynamic programming
what is "memoization" and "tabulation"?
Fibonacci numbers
knapsack problem
Chapter 4: Data Structures
data structures and abstract data types (ADTs)
arrays
linked lists
stacks
queues
binary search trees
priority queues (heaps)
associative arrays (hash tables)
Chapter 5: Graphs
directed and undirected graphs
graph traversal: breadth-first search and depth-first search
shortest path algorithms
Dijkstra's algorithm
Bellman-Ford algorithm
Chapter 6: Substring Search Algorithms
the most relevant substring search algorithms
naive substring search
Knuth-Morris-Pratt (KMP) substring search algorithm
Rabin-Karp algorithm
Z algorithm (linear pattern matching)
Chapter 7: Sorting
stable sorting and adaptive sorting
comparison based and non-comparison based sorting algorithms
string sorting
bubble sort
selection sort and insertion sort
quicksort
merge sort
counting sort and radix sort
These are the topics we are going to consider on a one by one basis. After every topic there is a Q&A section where you can test your knowledge on the given topics. Thanks for joining my course, let's get started!
10256
151
TAKE THIS COURSE