Extensive Course on Algorithms

  1. ​ Introduction to Python / C / C++ / Java

  2. Analysis of Algorithms

    • Asymptotic Analysis

    • Worst, Average and Best Cases

    • Asymptotic Notations

    • Analysis of Loops

    • Solving Recurrences

    • Amortized Analysis

    • Space Complexity

  3. Data Structures in Brief

    • Arrays​

    • Stacks

    • Queue

    • Lists and Dictionaries

    • Linked Lists

    • Trees 

    • Graphs

  4. Recursion

    • Introduction​

    • Applications

    • Solving Recurrence Relations

  5. Searching and Sorting

    • Linear Search

    • Binary Search

    • Jump Search, Interpolation Search, Exponential Search,Ternary Search

    • Selection Sort

    • Bubble Sort

    • Insertion Sort

    • Merge Sort

    • Heap Sort

    • QuickSort

    • Radix Sort

    • Counting Sort

    • Bucket Sort, ShellSort, Comb Sort, Pigeonhole Sort, Cycle Sort

    • Miscellaneous Problems ​

  6. Greedy Algorithms

    • Activity Selection Problem

    • Kruskal’s Minimum Spanning Tree Algorithm

    • Huffman Coding

    • Prim’s Minimum Spanning Tree Algorithm

    • Dijkstra’s Shortest Path Algorithm

    • Job Sequencing Problem

    • Greedy Algorithm to find Minimum number of Coins

    • K Centers Problem

    • Minimum Number of Platforms Required for a Railway/Bus Station

  7. Dynamic Programming

    • Overlapping Subproblems Property

    • Optimal Substructure Property

    • Longest Common Subsequence

    • Min Cost Path

    • Coin Change

    • Matrix Chain Multiplication

    • 0-1 Knapsack Problem

    • Egg Dropping Puzzle

    • Longest Palindromic Subsequence

    • Cutting a Rod

    • Floyd Warshall Algorithm

    • Palindrome Partitioning

    • Partition problem

    • Word Wrap Problem

    • Box Stacking Problem

    • Bellman–Ford Algorithm for Shortest Paths

    • Optimal Binary Search Tree

    • Subset Sum Problem

    • Maximum sum rectangle in a 2D matrix

    • Boolean Parenthesization Problem

    • Mobile Numeric Keypad Problem

    • Count of n digit numbers whose sum of digits equals to given sum

    • Minimum Initial Points to Reach Destination

    • Find length of the longest consecutive path from a given starting character

    • Tiling Problem

    • Minimum number of squares whose sum equals to given number n

    • Find minimum number of coins that make a given value

    • Collect maximum points in a grid using two traversals

    • Compute sum of digits in all numbers from 1 to n

    • Count possible ways to construct buildings

    • Find the minimum cost to reach destination using a train

    • Vertex Cover Problem 

    • Count number of ways to reach a given score in a game

    • Weighted Job Scheduling

  8. String Algorithms​​

    • Character Counting Based Problems​

    • Anagram Problems

    • Palindrome Problems

    • Binary String problems

    • Pattern Searching Algorithms

    • Miscellaneous Problems

  9. Backtracking

    • Permutations of a given string

    • The Knight’s tour problem

    • Rat in a Maze

    • N Queen Problem

    • Subset Sum

    • m Coloring Problem

    • Hamiltonian Cycle

    • Sudoku

    • Tug of War

    • Solving Cryptarithmetic Puzzles

  10. Divide and Conquer

    • Finding maximum and minimum element in an array​

    • Power of an element

    • Binary Search

    • Quick Sort

    • Merge Sort

    • Strassen's Matrix Multiplication

    • Median of two sorted arrays

    • Count Inversions

    • Closest Pair of Points

  11. Geometric Algorithms

  12. Mathematical Algorithms

  13. Bit Algorithms

  14. Graph Algorithms

    • Graph and its representations

    • Breadth First Traversal and Depth First Traversal for a Graph​

      • Directed and Undirected Graph

      • Topological Sorting

      • Snake and Ladder Problem

      • Biconnected Components

      • Check if a given graph is tree or not

    • Minimum Spanning Tree

      • Prim’s Minimum Spanning Tree 

      • Kruskal’s Minimum Spanning Tree Algorithm

      • Boruvka’s algorithm for Minimum Spanning Tree

      • Applications

    • Shortest Path

      • Dijkstra’s shortest path algorithm

      • Bellman–Ford Algorithm

      • Floyd Warshall Algorithm

      • Johnson’s algorithm for All-pairs shortest paths

    • Connectivity​

      • Connectivity in a directed graph

      • Articulation Points (or Cut Vertices) in a Graph

      • Biconnected graph

      • Bridges in a graph

      • Eulerian path and circuit

      • Fleury’s Algorithm for printing Eulerian Path or Circuit

      • Strongly Connected Components

      • Transitive closure of a graph

      • Find the number of islands

      • Tarjan’s Algorithm to find Strongly Connected Components

    • Hard Problems:

      • Graph Coloring (Introduction and Applications)

      • Travelling Salesman Problem (Naive and Dynamic Programming)

      • Travelling Salesman Problem (Approximate using MST)

      • Hamiltonian Cycle

      • Vertex Cover Problem (Introduction and Approximate Algorithm)

      • K Centers Problem (Greedy Approximate Algorithm)

    • Maximum Flow:

      • Ford-Fulkerson Algorithm for Maximum Flow Problem

      • Find maximum number of edge disjoint paths between two vertices

      • Find minimum s-t cut in a flow network

      • Maximum Bipartite Matching

      • Channel Assignment Problem

    • Miscellaneous Problems

  15. Randomized Algorithms

  16. Branch and Bound

    • Introduction with 0/1 Knapsack

    • 8 puzzle Problem

    • Job Assignment Problem

    • N Queen Problem

    • Traveling Salesman Problem

  17. Miscellaneous Algorithms

© 2020 by tenbyten.io

  • LinkedIn Social Icon
  • Facebook Social Icon
  • Instagram Social Icon