#Algorithms
Implementation of Algorithms and Data Structures
##Implemented Algorithms
| File Name | Algorithm(s) | Test Data | Description |
|---|---|---|---|
| MatrixMultiplication.py | Matrix Multiplication | Given with code | Trivial Method of multiplying two matrices. Matrices are shored as List of lists |
| KaratsubaMultiplication.py | Karatsuba Multiplication | Given with code | Multiplying two integers |
| PolynomialAddition.py | Polynomial Addition and Multiplication | Given with code | Adds two polynomial vectors of same size. Multiplies two polynomial vectors |
| MergeSort.py | Merge Sort | Given with code | Sort an array of integer using divide and conquer paradigm with Merge Sort |
| QuickSort.py | Quick Sort | IntegerArray.txt | Sort an array of integers using Quick sort |
| QuickSort - ChoosingPivot.py | Quick sort using different pivots | QuickSort.txt | Sort an array of using different pivots in quick sort to maximize performance |
| RandomizedContraction.py | Karger's minimum cut algorithm | kargerMinCut.txt | Randomized contraction algorithm to find minimum cut of a graph |
| BreadthFirstSearch.py | Breadth first graph searching algorithm | graph2.txt | Search the entire graph in levels |
| BFS(ShortestPath).py | BFS Application: shortest path | graph.txt | Computes shortest path from one point to another using BFS |
| BFS(UndirectedConnectivity).py | BFS Application: Undirected Connectivity | graph2.txt | Breadth first search to find the weekly connected components of an undirected graph |
| DepthFirstSearch.py | Depth first graph searching algorithm | graph3.txt | Search the entire graph in depth |
| DepthFirstSearch(Recursive).py | Recursive Depth first graph searching algorithm | graph3.txt | Search the entire graph in depth. Using recursion |
| StronglyConnectedComponents.py | DFS Application: Strongly connected components | SCC.txt | Using recursive DFS finds the strongly connected components of a directed graph |
| HuffmanAlgorithm.h | Huffman's Algorithm | None | Huffman's text compression algorithm. Works only with perfect sizes. |
| TowersOfHanoi.h | Towers of Hanoi | User Input | Implementation of classic tower of hanoi recursive algorithm. |
##Implemented Data Structures
| File Name | Data Structure | Test Data | Description |
|---|---|---|---|
| ArrayList.h | Linked List using Array | None | Generic array implementation of the linked list. Using built-in C++ array. |
| ArrayQueue.h | Queue based on Array | None | Generic array implementation of Queue. |
| ArrayStack.h | Stack based on Array | None | Generic array implementation of Stack. |
| Heaps(Max).py | Max Heap | None | Implementation of max heap data structure using array |
| Heaps.py | Min Heap | None | Implementation of min heap data structure using array |