Collection of pure python algorithm implementations to solve computational problems.
The goal is for these implementations to be:
- Elegant (clean, short, easy to understand).
- Theoretically efficient.
- Well tested.
- Well documented.
References:
Some design principles taken into account (from the Zen of Python):
- Beautiful is better than ugly.
- Explicit is better than implicit.
- Simple is better than complex.
- Complex is better than complicated.
- Flat is better than nested.
- Sparse is better than dense.
- Readability counts.
- Errors should never pass silently.
- Unless explicitly silenced.
- There should be one-- and preferably only one --obvious way to do it.
- If the implementation is hard to explain, it's a bad idea.
- If the implementation is easy to explain, it may be a good idea.