Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Deep Dive into Algorithms
Rating: 4.3 out of 5(46 ratings)
728 students

Deep Dive into Algorithms

Deep Dive into Algorithms
Last updated 9/2020
English

What you'll learn

  • Students will learn various Backtracking Problems along with implementation using C language
  • Students will learn various Dynamic Programming Problems along with implementation using C language
  • Students will learn various Graph Algorithms along with implementation using C language
  • Branch and Bound
  • Divide and Conquer
  • Greedy Algorithm
  • Pattern Matching
  • Searching and Sorting

Course content

4 sections82 lectures32h 22m total length
  • Introduction35:23

    Explore backtracking and its cousins from recursion and recurrence relations to dynamic programming, with emphasis on state-space trees, bounding functions, branch-and-bound, and problem types like decision, optimization, and enumeration.

  • Concept of N Queen Problem1:03:08
  • Implementation of N Queen Problem38:14
  • Time Complexity Analysis of N Queen Problem5:34
  • Concept of Knight's Tour Problem25:48
  • Implementation of Knight's Tour Problem41:23

    Explore the knight's tour problem on a chessboard and implement a backtracking solution using eight knight moves, state space exploration, initialization, and a visited check to complete the tour.

  • Time Complexity Analysis of Knight's Tour Problem8:44
  • Concept Explanation of Rat in a Maze Problem23:36
  • Implementation of Rat in a Maze35:49
  • Time Complexity Analysis of Rat in a Maze4:55
  • Concept Explanation of Subset Sum34:25
  • Implementation of Subset Sum Problem28:34
  • Time and Space Complexity Analysis of Subset Sum Problem13:24
  • Concept Explanation of M-Coloring Problem43:04

    Explore the m-coloring problem using backtracking to color a graph with given colors while enforcing that adjacent vertices have different colors; compare decision, optimization, and enumeration approaches.

  • Implementation of M Coloring Problem36:39
  • Time and Space Complexity Analysis of M Coloring Problem13:37
  • Concept Explanation of Hamiltonian Cycle Problem34:16
  • Implementation of Hamiltonian Cycle37:57

    Explore implementing a Hamiltonian cycle via backtracking in C, building a graph with an adjacency matrix, and using a solve function and a display function to show all solutions.

  • Time and Space Complexity Analysis of Hamiltonian Cycle9:58
  • Concept Explanation of Sudoku Solver48:54
  • Implementation of Sudoku Solver37:55
  • Time and Space Complexity Analysis of Sudoku Solver24:05

    Explain the time and space complexity of a sudoku solver using backtracking, showing nine possibilities per empty cell and a time complexity of nine to the n, with constant space.

  • Sieve of Eratosthene18:56

    Explore the Sieve of Eratosthenes to find all primes up to a given number by selecting a base and eliminating its multiples, stopping at the square root.

  • Implementation of Sieve of Eratosthene19:02

    Implement the sieve of Eratosthenes to generate primes by marking multiples up to the square root of n, starting at the square of each prime, and printing primes below n.

  • Concept Explanation of Sieve of Sundaram24:13
  • Implementation of Sieve of Sundaram21:46

    Learn the implementation of the sieve of Sundaram to generate primes. Follow elimination steps, index-value mapping, and final prime construction.

  • Time and Space Complexity Analysis of Sieve of Eratosthene and Sieve of Sundaram27:08
  • Sieve of Eratosthene in O(N) Time Complexity31:01
  • Implementation of Sieve of Eratosthene in O(N) Time Complexity33:36
  • Prime Numbers after P with Sum S32:49

    Use backtracking to find three prime numbers between two and S that sum to S, while generating prime numbers with the sieve of Eratosthenes and analyzing complexity.

  • Implementation of Prime Numbers after P with Sum S42:02

    Learn to implement a backtracking method that generates primes after a given prime and selects a subset whose sum matches the target, using linked lists, traversal, and recursive safety checks.

  • Time and Space Complexity Analysis of Prime Numbers after P with Sum S20:46

    Analyze the time and space complexity of a prime-selection algorithm using recursion and loops. Derive a recurrence, solve by substitution, and discuss activation records and space bounds.

Requirements

  • Recursion

Description

An algorithmic paradigm or algorithm design paradigm is a generic model or framework which underlies the design of a class of algorithms. An algorithmic paradigm is an abstraction higher than the notion of an algorithm, just as an algorithm is an abstraction higher than a computer program.

  • How does one calculate the running time of an algorithm?

  • How can we compare two different algorithms?

  • How do we know if an algorithm is `optimal'?

Who this course is for:

  • Programmers who are interested to learn algorithms