Java implementations of different problems and algorithms