Algorithm Implementations
This is just a collection of algorithms I wanted to implement in order to improve my understanding. They are NOT optimized and probably shouldn't be used in production code.
To run all unit tests:
python3 -m unittest discover test
quicksort
Recursive implementation of the quick sort algorithm.
To run tests:
python3 quicksort.py
mergesort
Recursive implementation of the merge sort algorithm.
To run tests:
python3 mergesort.py
hashtable
Simple hashtable implementation
autoresizelist
A helper class used to implement the heap.
To run tests:
python3 autoresizelist.py
heap
Implementation of a heap.
To run tests:
python3 heap.py
nqueens
Backtracking solution to the n-queens problem (just finds the first one).
To run:
python3 nqueens.py
To run tests:
python3 -m unittest discover test --pattern="*nqueens*"
combinatorics
Various combinatoric functions like permutations and combinations.
To run:
python3 combinatorics.py