Rating 4.35 out of 5 (356 ratings in Udemy)
What you'll learn- understand recursion and stack memory
- understand backtracking
- understand dynamic programming
- understand the fundamental data structures
- understand arrays and linked lists
- understand stacks and queues abstract data types
- understand tree data structures (binary search trees and heaps)
- understand hashing and hash-based data structures such as hash tables
- understand graph algorithms
- understand breadth-first search and …
Rating 4.35 out of 5 (356 ratings in Udemy)
What you'll learn- understand recursion and stack memory
- understand backtracking
- understand dynamic programming
- understand the fundamental data structures
- understand arrays and linked lists
- understand stacks and queues abstract data types
- understand tree data structures (binary search trees and heaps)
- understand hashing and hash-based data structures such as hash tables
- understand graph algorithms
- understand breadth-first search and depth-first search
- understand shortest path problem (Dijkstra's and Bellman-Ford algorithm)
- understand substring search algorithms (Rabin-Karp, Knuth-Morris-Pratt and Z algorithms)
- understand sorting algorithms
DescriptionThis 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
Chapter 3: Dynamic Programming
Chapter 4: Data Structures
Chapter 5: Graphs
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!