alorithms top 50 in java