Cita: El método estático sort() de la clase Collections tiene ya implementado el algoritmo más eficiente para ordenar cualquier colección. Lo único que tienes que hacer es insertarle la lógica de cual es mas grande y cual es mas pequeño con una interface Comparator.
Solo por completar la excelente respuesta de HackmanC, comentar que el metodo sort de Java utiliza concretamente el algoritmo
Dual-Pivot Quicksort de Vladimir Yaroslavskiy.
Aqui teneis la especificacion de dicho algoritmo:
http://iaroslavski.narod.ru/quicksor...tQuicksort.pdf
Dicho algoritmo se comporta muy bien en la mayoria de los casos (O(nLogn)) aunque siempre hay situaciones limite en las que otros metodos de ordenacion pueden ser algo mas rapidos (por ejemplo, si la lista ya esta ordenada).
Un saludo