Voy a cambiar la pregunta jeje, sabia que era demasiado compleja, al final he estado viendo metodos de ordenacion y este que se usa en la funcion dice la gente que se llama metodo de la burbuja donde se compara la posicion 1 conla 2 si es mayor la 1 que 2 hace el intercambio y asi con la 2 con la 3... hasta el final, curiosamente he encontrado este video que aunque se ve fatal y se oye mnal algo empiezo a entender del porque se le pone ese -2 a length del array.
http://www.youtube.com/watch?v=qpyM4...eature=related