Algorithms is a library of algorithms and data structures implemented in Python.

The main purpose of this library is to be an educational tool. You probably shouldn’t use these in production, instead, opting for the optimized versions of these algorithms that can be found else where.

You should totally check out the docs for implementation details, complexities and further info.


If you want to use the algorithms in your code it is as simple as:

from algorithms.sorting import bubble_sort

my_list = bubble_sort.sort(my_list)


  • Pseudo code, algorithm complexities and futher info with each algorithm.
  • Test coverage for each algorithm and data structure.
  • Super sweet documentation.


Installation is as easy as:

$ pip install algorithms


Pytest is used as the main test runner and all Unit Tests can be run with:

$ ./


Contributions are always welcome. Check out the contributing guidelines to get started.