A bunch of notes on algorithms and data structures I'm taking as I'm learning them!
- Time and space complexity
- Backtracking
- Recursion
- Sorting
- BigInt
- Memoization
- Divide and conquer
- Decrease and conquer
- Greedy algorithms
- Dynamic programming
- Data structure
- Binary exponentiation
- Hare-Tortoise (Floyd's cycle finding) algorithm
- Permutations of a set
- Sorting / Selection sort
- Sorting / Insertion sort
- Sorting / Bubble sort
- Sorting / Merge sort
- Binary search
- Improvement / Revisit concept of greedy algorithms when it's clearer and I can give examples
- Data structure / Stack
- Data structure / Queue
- Data structure / Priority queue
- Data structure / Segment tree
- Data structure / Suffix tree
- Data structure / Heap
- Data structure / Treap
- Data structure / Trie
- Data structure / Fenwick tree (BIT, Binary-Indexed Tree)
- Data structure / Minimum Spanning Tree (MST)
- Algorithm / Quick Sort
- Algorithm / Heap Sort
- Algorithm / Josephus problem algorithm
- Algorithm / Longest common substring
- Algorithm / Longest repeated substring
- Algorithm / Longest increasing subsequence
- Algorithm / Dijkstra (shortest path)
- Algorithm / Floyd-Warshall (shortest path)
- Algorithm / DFS (Depth-First Search)
- Algorithm / BFS (Breadth-First Search)
- Algorithm / Euler Trail
- Algorithm / Flood Fill
- Algorithm / Aho-Corasick algorithm
- Algorithm / Boyer-Moore's Majority Vote algorithm
- Algorithm / Convex Hull algorithm