Data structure & Algorithm
Complexity i) Time/Memory Complexity, examples of nested loops and recursions
02 STL i) introduction, mechanism, library functions ii) vector iii) Stack/queue/deque iv) Priority Queue v) set/map/multi/unordered
03 Binary Search i) Binary Property ii) Lower and upper bound iii) Using binary property in complex problems
04 Ternary Search i) Ternary Property ii) Using ternary property in complex problems
05 Recursion i) Recursive equation ii) Divide and Conquer iii) Quick select iv) Inversion count
06 Sorting i) Recap ii) Merge sort iii) Quick sort
07 String i) Substring, Subsequence, substring, palindrome, anagram recap ii) Matching iii) Hashing
08 Greedy i) Prove/disprove greedy approach ii) Task sheduling iii) Fractional knapsack iv) Coin Change v) And many more
09 Number Theory i) Sieve of Eratosthenes ii) Factorization iii) Fermat’s little theorem iv) Modular Arithmetic v) Totient function
10 Disjoint set union i) Mechanism ii) Various applications
11 Graph theory i) Introduction and definitions ii) Storing graphs
12 Graph Travarsal and shortest path i) DFS/BFS ii) Various properties and applications iii) Dijkstra
13 Backtrack i) Brute force ii) Permutation generation iii) Graph coloring
14 Dynamic programming i) Introduction, properties, states ii) Ancestors of DP: Fibonacci, Factorial, nCr iii) Classics and variations
15 Segment Tree i) Basic segment Tree
List of data structures and algorithms:
Data Structure Deque Extendable Array (Vector) Linked List (Doubly) Stack (Fixed size) Queue (Fixed size) Heap (Binary) Priority Queue Tree Binary Tree Binary Search Tree Order Statistic Tree Red Black Tree Traversal (Binary) Preorder Postorder Inorder Euler Tour Sorting Heapsort Merge Sort Quicksort Lomuto Partition Randomized Partition Hoare partition Bubble Sort Insertion Sort Selection Sort Searching Binary Search Linear Search Range Queries (on BST) Divide and Conquer Maximum Subarray Strassen’s Matrix Multiplication Dynamic Programming Maximum Subarray Numeric Matrix (Basic Operations) Puzzle Josephus problem (1. Using Queue, 2. Using Order Statistic Tree) Development environments:
Ubuntu 16.04.2 (WSL) GCC 7.3.0 Valgrind 3.13.0