Data Structures and Algorithms in Python
Implementations of some Data Structures, with different approaches and some practical applications. Designed to be used as consulting material for those who want to learn about Data Structures and Algorithms and have a preference for the Python programming language.
Here is a checklist of the Data Structures and Algorithms we have or we are planning to add. If you would like to add more to the checklist, just create a Pull Request with your additions and we will review it.
Data Structures:
- Stack
- Trie
- Heap
- Union-Find
- Graphs
- Linked List
Algorithms:
Sorting Algorithms:
- Bubble Sort
- Heap Sort
- Merge Sort
- Quick Sort
- Insertion Sort
- Selection Sort
- Radix Sort
- Counting Sort
- Shell Sort
- Bogo Sort
- Tim Sort
- Gnome Sort
Search Algorithms:
- Linear Search
- Binary Search
- Ternary Search
String Algorithms
- Knuth-Morris-Pratt
- Manacher
- Z-Function
Number Theory Algorithms
- Greatest Common Divisor
- Extended Greatest Common Divisor
- Euler's Phi Function
- Eratosthenes Sieve
- Miller-Rabin
- Modular Arithmetics
Algebra/Numerical Algorithms
- Gauss
- Simplex
- Simpson
- Fast Fourier Transform
Graph Algorithms:
- Breadth-First Search
- Depth-First Search
Contributing
We would love to see you contribute to this project. No matter if it is fixing a bug, adding some tests, improving documentation, or implementing new algorithms and data structures. See CONTRIBUTING.md so you can have a better understanding of our contribution guidelines.