VSDevelopers, Algorithms Coliseum

Core Algorithms Courseware

Basics

Defining the problem
  • Input
  • Output
  • Constraints
Understanding the problem domain
  • Understand the data type
  • Understand the storage & processor
  • Data Sources
How to Solve it Questioning

Algorithms Strategies

  • Brute Force
  • Iterative and Conquer
  • Transform and Conquer
  • Backtracking
  • Recurrence Relation
  • Divide and Conquer
  • Greedy Method – Heuristic
  • Dynamic Programming

Algorithms – Time & Space Complexity

  • Time Complexity – It is complex!
  • How do you measure time taken by a program?
  • How do you formulate generic time measures?
  • Logarithms – An understanding.
  • Examples

Data Structures – Organize Your Data

  • Arrays, Stack, Queues
  • List
  • Trees
  • Graphs

Sorting & Searching

Search without sorting Sorting techniques
  • Insertion Sort
  • Merge Sort
  • Quick Sort
  • Heap Sort
  • Linear Search
  • Binary Search

Programs

20 sessions each ~90 minutes

Sum of Integers Finding a loop in a list Quick Sort
Fibonacci Series Stacks – CRUD Linear Search
Palindrome Queue – CRUD Binary Search
Anagram Simple Sort Trees – CRUD
Linked List CRUD operations s Insertion Sort Graphs – BFS
Doubly Linked List CRUD Merge Sort Graphs – DFS

Problems Solved

20 sessions each ~90 minutes

Regular Expression Matching Sudoku solutio
Balanced Binary Tree Heap sort
Spanning Tree Radix sort
Prim’s MST Multi string search
Kruskal’s MST Flatten binary tree
Kth Largest element in a BST Knuth-Morris-Pratt Algorithms
n-queens problem A* algorithm
Longest SubString Two-Edge connected graph
Three/Four Number Sum Linked list palindrome
Cycle in a graph Bridge Edge
Search sorted matrix Alien Dictionary
Suffix Trie construction Word search
Longest common subsequence Reserved
Knapsack problem Reserved
Dijkstra’s Algorithms Reserved
Topological sort Reserved

Artifacts to have handy during the class:

  • Notebook and Pen
  • Java IDE or Your Fav Language IDE like Python IDE or C++ IDE
loader