import java.util.Arrays;
import java.util.Date;
import java.util.TimeZone;
import java.text.ParseException;
import java.text.SimpleDateFormat;

class Datas {
    public static void main(String[] args) {
        String[] array = {"05/09/2016", "10/10/2012", "06/09/2016", "5/4/2012", "11/11/2016"};
        String[] ordenado = ordenarDatas(array);
        System.out.println(Arrays.toString(ordenado));
    }
    
    public static String[] ordenarDatas(String[] entrada) {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
        sdf.setLenient(false);
        Date[] dates = new Date[entrada.length];
        for (int i = 0; i < entrada.length; i++) {
            try {
                dates[i] = sdf.parse(entrada[i]);
            } catch (ParseException e) {
            	throw new IllegalArgumentException(entrada[i], e);
            }
        }
        Arrays.sort(dates);
        String[] resultado = new String[entrada.length];
        for (int i = 0; i < entrada.length; i++) {
            resultado[i] = sdf.format(dates[i]);
        }
        return resultado;
    }
}