Entonces tu solución al problema está en el link de SO que te dejé anteriormente. Tomando dicha página como ejemplo, aunque la respuesta ganadora es la primera, para mi gusto la que proporciona "spuente" es la más acertada a la hora de entenderla completamente:
El primer bucle for te recorre el array entero, pero para cada iteración, el segundo bucle recorre y comparar cada par de números adyacentes del array. Tomando de muestra el array que proporciona el usuario:
int [] a = {7,2,4,8,3,9,1,5,10,6};
Y haciendo una pequeña traza de lo dicho:
Para la primera iteración del programa tendríamos lo siguiente:
i=0, es decir, el primer bucle está parado en la primera posición del array, "apuntando" al 7
j=1, es decir, el segundo bucle está parado en la segunda posición del aray, "apuntando" al 2
if (a[j - 1] > a[j]) {
"Si el elemento en j-1, es decir, el 7, es mayor que el elemento que está en j, es decir, el 2"
entonces, se realiza el cambio de las variables. Esta metodología se denomina "asignación en paralelo". Se guarda el mayor elemento en una variable auxiliar, se cambia la menor donde estaba la mayor, y en donde estaba la menor antes, se mete lo guardado en la variable auxiliar, o séase, el mayor valor.
Para la segunda iteración en la traza:
i=0, nada cambia
j=2, es decir, apunta al 4
el array queda modificado así: {2,7,4,8,3,9,1,5,10,6};
En el "if" se comparan los elementos de las posiciones "j-1" y "j", respectivamente. Esto es, si el 7 es mayor que el 4.
Sin embargo, es necesario un primer bucle, aquel que va iterando sobre cada elemento del array, ya que, no necesariamente, el array se va a quedar perfectamente ordenado en la primera "vuelta", por así llamarla. Con el bucle anidado, o el más interno, comparamos pares de elementos consecutivos sí, pero, ¿ya queda ordenado de buenas el array? No.
Una vez que el segundo bucle haya terminado, la "i" del primer bucle cambia a "1" y ahora va estudiando los siguientes pares de numeros. Si te fijas, el orden respecto al estudio de los números ha cambiado y así, quién es menor y el mayor. Por ello mismo hace falta repetir esto "n" veces por "n-1" veces.
Y, a la vez, se van dejando a la izquierda la secuencia ordenada de números con cada iteración del bucle primero.