This repository is a collection of algorithms and data structures python.Included are some helpful examples of more advanced Python concepts like decorators and abstract base classes.
If you are using conda for dependency managemen please check the anaconda-project.yml
file for dependencies and package versions.
If you are using mise and pip, please do the following:
mise local python@3.11
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
deactivate
(when you are finished)
- Arrays
- Kadane's algorithm
- Dutch Flag Partition
- Graphs
- Directed and Undirected graphs
- Fundamental traversals
- Hashtables (dictionary)
- Rubin-Karp algorithm
- Implementations with linear probing for hash collisions
- Linked Lists
- Doubly linked list
- Stack and Queues
- Indexed Priority Queues
- Trees
- Heaps
- Fibonacci heaps
- D-ary heaps
- Tries
- Binary Search Trees
- AVL Balancing Trees
- Heaps
- Dynamic Programming
- Recursion
- Towers of Hanoi
- Coin change problems
- String Permutations
- Sorting
- Merge sort
- Radix sort
- Quick sort
- Heap sort
- Traversals
- Breadth First Search
- Depth First Search
- Graph Algorithms
- Dijkstra's algorithm
- Prim's algorithm
- Bellman Ford algorithm
- Kruskal's algorithms
- Backtracking
- Knight's tour problem
- N-Queens problem