implementations of algorithms for practice, fun or coding interviews