Implementations of algorithms covered in Stanford Algorithms: Design and Analysis course