A collection of algorithms and data structures written in Python.
| Name | Description | Links |
|---|---|---|
| Bloom Filter | Space-efficient probabilistic data structure to check list non-membership | Wiki |
| Name | Description | Links |
|---|---|---|
| Bubble Sort | A simple sorting algorithm that repeatedly steps through the list. | Wiki |
| Bogo Sort | Highly inefficient algorithm based on random permutations. | Wiki |
| Merge Sort | Divide and Conquer sorting algorithm. | Wiki |
| Name | Description | Links |
|---|---|---|
| Binary Search | An algorithm to find the position of a target value within a sorted array. | Wiki |
| Dijkstra's Algorithm | Shortest path between two nodes in a graph. | Wiki |
| Floyd-Warshall Algorithm | Dynamic Programming algorithm to find the shortest distances between all points. | Wiki |
| Name | Description | Links |
|---|---|---|
| Huffman Coding | Lossless compression based on the frequency of characters. | Wiki |
| Name | Description | Links |
|---|---|---|
| Kadane's Algorithm | Find the maximum contigous subarray in O(n). | Wiki |
| Longest increasing subsequence | Find a subsequence of a given sequence in which the subsequence's elements are in sorted order, lowest to highest, and in which the subsequence is as long as possible. | Wiki |
| Name | Description | Links |
|---|---|---|
| Sieve of Eratosthenes | A simple, ancient algorithm for finding all prime numbers up to any given limit. | Wiki |
| Name | Description | Links |
|---|---|---|
| Weighted Job Scheduling | Given events with assigned values, find the maximum value you can make by scheduling events in a non-overlapping way. | YouTube |
| Name | Description | Links |
|---|---|---|
| Set Cover - Greedy | Greedy approximation for the Set Cover problem. | Wiki |
| Name | Description | Links |
|---|---|---|
| Universal Tree Counting | Count the number of non-empty Universal sub-trees. | |
| Tower of Hanoi | Resursive solution to the Tower of Hanoi. | Wiki |
MIT