Learning Path
- Learn an object oriented programming language (intermediate level, upto oops concepts) (Java recommended)
- Asymptotic notation
- Array
- Basic concepts like access, copy, memory management
- Searching Algorithms
- Linear Search
- Binary Search
- Jump Search
- Interpolation Search
- Exponential Search
- Sorting Algorithms
- Bubble Sort
- Bucket Sort
- Quick Sort
- Insertion Sort
- Selection Sort
- Merge Sort
- Pigeonhole Sort
- Heap Sort
- Shell Sort
- Radix Sort
- Math Operation
- Linked List
- Single LL
- Double LL
- Circular LL
- Doubly Circular LL
- Header LL (GHLL)*
- Stacks
- Expression Parsing (prefix, postfix, infix)
- Queue
- Simple
- Circular
- Priority
- Double Ended
- Trees
- Binary
- Binary Search
- AVL
- B-Tree
- Red Black *
- N-ary *
- Tries
- Suffix *
- Huffman *
- Heaps
- Graphs
- Bipertite
- Minimum Spanning Tree
- Algorithms
- Simple recursive
- Backtracking
- Divide and conquer
- Greedy
- Dynamic programming
- Game Theory
- Branch and bound
- Brute force
- Randomized