This repo contains implementation of the following
- Divide and Conquer algorithms
- Merge sort
- Insertion sort
- Bubble sort
- Quicksort - with different types of pivot selection methods
- Counting number of array inversions while sorting
- Karatsuba's recursive method for multiplication
- Graph algorithms
- Dijsktra's Shortest Path Algorithm
- Kosaraju's two pass algorithm for estimating Strongly Connected components in a graph
- Krager's Randomized algorithm for estimating minimum cut of a graph
- Median maintenance problem using heaps
- Two sum problem using Hash table
- Greedy algorithms
- Knapsack problem - solved with different time and space complexities
- Maximum Weighted Independent Set problem for a path graph
- Prim's algorithm to estimate a Minimum cost Spanning Tree
- Clustering algorithm implemented using Union-find and heap data structures
- Clustering algorithm with Hamming distance estimation
- Shared resource scheduling problem - solved using difference and ratio
- Huffman coding algorithm
- NP-complete Problems
- 2SAT problems - solved using Kosraju's SCC algorithm
- Maximum Weighted Independent Set problem for a path graph
- Floyd Warshall Algorithms
- TSP Heuristic solution
- TSP solution through Dynamic Programming