Algorithms
Searching:
- Binary Search
- Linear Search
- Depth First Search
- Breadth First Search
- Rabin-Karp Algorithm
- Z Algorithm
Sorting:
- Insertion Sort
- Heap Sort
- Selection Sort
- Merge Sort
- Quick Sort
- Counting Sort
- Bucket Sort
- Bubble Sort
- Radix Sort
- Shell Sort
- Comb Sort
- Pigeonhole Sort
- Cycle Sort
Graphs:
- Kruskal's Algorithm
- Dijkstra's Algorithm
- Bellman Ford Algorithm
- Floyd Warshall Algorithm
- Topological Sort Algorithm
- Flood Fill Algorithm
- Lee Algorithm
- Prim's Algorithm
- Boruvka's Algorithm
- Johnson's Algorithm
- Kosaraju's Algorithm
- Tarjan's Algorithm
Arrays:
- Kadane's Algorithm
- Floyd's Cycle Detection Algorithm
- Knuth-Morris-Pratt Algorithm (KMP)
- Quick Select Algorithm
- Boyer - More Majority Vote Algorithm
Tree:
- AA Tree
- Binary Indexed Tree or Fenwick Tree
- Quadtree
- Cartesian Tree
- Fibonacci heap
- Interval Tree
- Finger Tree
- Crit-bit Trees
- Scapegoat Tree
- Splay Tree
- Suffix Tree
- Counted B-Trees
- Binary Space Partitioning
- Van Emde Boas Tree
Others:
- Huffman Coding Compression Algorithm
- Euclid's Algorithm
- Union Find Algorithm
- Manacher's Algorithm
- Eukerian Path (Hierholzer's Algorithm)
- Convex Hull | Set 1 (Jarvis’s Algorithm or Wrapping)
- Convex Hull | Set 2 (Graham Scan)
- Convex Hull using Divide and Conquer Algorithm
- Quickhull Algorithm for Convex Hull
- Distinct elements in subarray using Mo’s Algorithm
- Line Sweep Algorithm
- MO’s Algorithm (Query square root decomposition)
- Disjoint-set Data Structure
- Ackermann Function
- Zobrist Hashing
- FM-index
- Circular buffer
- Hungarian Algorithm / Kuhn–Munkres Algorithm / Munkres Assignment Algorithm
- Dekker's Algorithm
- Winged Edge
- Burrows–Wheeler Transform
- Zipper
- Five Balltree Construction Algorithms
- Cuckoo Hashing
- Rope (Data Structure)
- Binary Decision Diagram
- Disjoint-set Data Structure
- Bloom Filter