Here is the list of all algorithms and data structures, seperated into a few categories, according to the course of Stanford on coursera - Algorithms Specialization.
- Recursive Algorithm for multiplication of two integers
- Karatsube Algorithm for multiplication of two integers
- Merge Sort
- Devidde and Conquer counting inversions
- Quick Sort (first element as pivot)
- Quick Sort (last element as pivot)
- Quick Sort (median of three numbers as pivot)
- Quick Sort (random pivot)
- Karger Min Cut Algorithm
- Computing SCCs (Strongly Connected Components) using Iteration
- Computing SCCs using Recursion (this version works not well on a large data set)
- Dijkstra's Algorithm (using brute-force)
- Dijkstra's Algorithm (using heap)
- MinHeap (e.g. Median Maintenance)
- Red Black Tree
- Hash Table
- Bloom Filter
- Job Scheduling using Greedy Algorithm
- Prim's MST using brute-force/heap
- Clustering using Kruskal Algorithm with Union Find Set
- Clustering of big graph (together with Hamming Distance and Bit Operation)
- Huffman Coding (using heap)
- maximum WIS using DP
- Knapsack Problem using DP (smaller problem)
- Knapsack Problem using recursiong with memorization (bigger problem)
- Sequence Alignment/Edit Distance
- Optimal Binary Search Tree
- APSP Problem with Floyd Warshall Algorithm
- TSP Problem with DP (using Bitmask for acceleration)
- TSP Problem with Nearest Neighbor heuristic
- 2-SAT Problem with Papadimitriou's Algorithm with optimization