THE PLAN

 

PHASE 1 :

  1. Array
  2. Linked List – Single and Doubly and Circular
  3. Stack
  4. Queues
  5. Hashing
  6. Sorting
    – SBI (selection, bubble, insertion)
    – Merge sort
    – Heap sort (learn this later when you understand graphs/trees)
    – Quick sort (mainly, hoare’s partition scheme)
    – Use quick sort everywhere, it worked well for all algorithms.
  7. Search Algo
  8. String
    – string reverse, palindrome
    – substring, prefix, suffix, border
    — anagram
    – Searching for pattern
    — Naive – compare each char of Pattern (P) to each char of text (T)
    — KMP
    — Boyer Moore
    — LCP array – 1st entry is undefined, other entries are longest common                               prefix lengths of (1st and 0th index of Suffix array of a string, & so on)
    — [Skip] –  Suffix array – simply, indexes of sorted suffixes of a string – oh this is very
    important, saves a lot of run time, so your tests pass easily.
  9.  Tree
    — Heaps
    — Trie
    — BFS
    — DFS
    —  Pre-order – node, left, then right
    —  Post-order – left, right then node
    —  In-order – left, node, then right
    —  Binary Tree – max 2 nodes
    – Binary Search Tree – max 2 nodes, left < root < right
    —  BST to preorder, postorder, or inorder
    —  preorder array to BST (interview question too)
    – Trees – multi nodes
  10. Graph Theory – Graph
    –  Adjacency matrix – simple 2d array – easy but requires a lot of memory –                        (mostly no body uses)
    – Adjacency list – array of (varying length) arrays – saves a lot of memory –
    (everybody uses)
    – BFS
    – DFS
    —  Pre-order – node, left, then right
    —  Post-order – left, right then node
    —  In-order – left, node, then right
    – Dijkstra
    – Floyd Warshal – beautiful algorithm- N power N is now N power 3
    – Bellman Ford
    – Kruskal’s and Prim’s – traverse all nodes of graph once, i.e. minimum spanning
    tree
    – Segment Tree
    – Hamiltonian path & cycle, also graph
    – Euler path & cycle, also graph
  11. Bit manipulation
    – bitwise AND &
    – bitwise OR |
    – ** bitwise XOR ^
    – Binary index tree (BIT) / Fenwick tree – Another beautiful tree (actually array) – Store only left subtree’s value (say, sum) at a node – Easy to modify, etc.

PHASE 2:

  1. OS – Threads, Processes and Locks using Mutex, Semaphores (Operating systems Archives – GeeksforGeeks)
  2. Design Patterns
  3. Go through all articles and good concept
  4. Mysql and Redis Concept
  5.  System Design Interview

PHASE 3:

  1. Simple dynamic programming and greedy algorithms
  2. Basic graph concepts, breadth-first and depth-first search
  3. Dijkstra’s algorithm
  4. Minimum spanning trees
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s