Cmq c'e' il metodo statico Collection.sort() che ha diverse versioni in overloading, puoi passare come argomento sia un Collection che un array, accetta anche un secondo argomento di tipo Comparator, ovvero una classe che implementa l'interfaccia Comparator dove stabilisci il sistema di confronto.
Per quanto riguarda il codice devo ammettere che di pazienza ne hai avuto per scriverlo, intuisco anche che tu lo abbia scritto tutto a mano, senza nessun IDE.