assignment 4 for algorithms I on coursera, Princeton University. Skills: Java