Implementations of a few algorithms and datastructures for fun and profit! You can see the implementations of these algorithms and Learn. These algorithms are implemented in Python but the Logic remains same and You can try to implement them on your own.
- Karatsuba Multiplication
- Basic Sorting
- Rabin-Miller primality test
- Sieve of Eratosthenes for prime numbers
- Binary Search
- Counting Inversions in an array
- Selecting ith order statistic in an array
- Graph datastructure (directed & undirected)
- Graph Algos
- Topological Sorting
- Shortest hops
- DFS
- BFS
- Connected Components
- Dijkstra's Shortest Path - O(mlogn)
- Prim's Minimum Cost Spanning Tree - O(mlogn)
- Kruskal's Minimum Spanning Tree - O(mlogn)
- Max k Clustering
- Bellman Ford
- Floyd Warshall
- Johnson's Algorithm
- Heap datastructure
- Max heaps
- Min heaps (priority queue)
- Heapsort
- Job Scheduling
- UnionFind Data Structure
- Binary Search Tree
- Kandane's Algorithm
- Knapsack Problem (0/1 and unbounded)
- Longest Increasing Subsequence
- Longest Common Subsequence
- Prefix Tries
- Stack ADT (with example problems)
- String Reverse
- Parenthesis Matching
- Infix to Postfix
- Modular exponentiation
- Modular multiplicative inverse
python -m tests.graph_test
python -m tests.digraph_test
python -m tests.graph_algorithms_test
python -m tests.heap_test
python -m tests.unionfind_test
python -m tests.singly_linked_list_test
python -m tests.modular_exponentiation_test
python -m tests.modular_multiplicative_inverse_test