Common algorithms written in Python. The currently solved problems are:
- Quicksort
- Heapsort
- Merge Sort
- Counting number of inversions
- Maximum subarray problem
- Reservoir Sampling
- Randomized Selection
- Karger's Contraction Algorithm to compute minimum cuts in a Graph
- Dijkstra's algorithm for computing single-source shortest paths in graphs with non-negative edges
- Kosaraju-Sharir's algorithm to compute strongly connected components in graphs
- Algorithm to compute single-destination shortest paths in graphs
You can also find some Data Structures that were implemented, such as:
- Binary Min Heap
- Binary Max Heap
- Binary Median Heap that uses a min and a max heap to maintain the median
- MinPriorityQueue