YoVDO

Recursion, Algorithms and Data Structures Bootcamp in C++

Offered By: Udemy

Tags

Algorithms and Data Structures Courses Data Structures Courses Dynamic programming Courses Stacks Courses Linked Lists Courses Recursion Courses

Course Description

Overview

Recursion, Backtracking, Dynamic Programming, Graphs, Data Structures, Sorting and Substring Search Algorithms

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

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!


Taught by

Holczer Balazs

Related Courses

Algorithms: Design and Analysis, Part 2
Stanford University via Coursera
Conception et mise en œuvre d'algorithmes.
École Polytechnique via Coursera
Algorithmic Toolbox
University of California, San Diego via Coursera
مربع الأدوات الخوارزمية
University of California, San Diego via Coursera
Algorithmic Thinking (Part 2)
Rice University via Coursera