Algorithms (Data Structures) Bootcamp in C++

Go to class
Write Review

Algorithms (Data Structures) Bootcamp in C++ provided by Udemy is a comprehensive online course, which lasts for 17 hours worth of material. Algorithms (Data Structures) Bootcamp in C++ is taught by Holczer Balazs. Upon completion of the course, you can receive an e-certificate from Udemy. The course is taught in Englishand is Paid Course. Visit the course page at Udemy for detailed price information.

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!