Este algoritmo é conhecido como bubble sort, ele funciona da seguinte maneira, ele itera pela sua lista verificando se o próximo item da iteração é maior menor que o item atual, dai ele troca a posicao dos itens na lista e depois de algumas iteracoes pela lista ele termina de organizar todas as posicoes.
Não sei se fui claro, mas vc consegue mais informações pesquisando no google por buble sort.
vai lendo o array e comparando a posição anterior com a proxima, exemplo:
if (array[0] > array[1])
if (array[1] > array[2])
depois ele faz a logica de ordenação
Ordenado = false;
int aux = array[i];
array[i] = array[i-1];
array[i-1] = aux;
na logica ele esta usando uma variavel para auxiliar (AUX) e troca os valores dos vetores.Exemplo:
aux = array[1] // Guarda temporariamente
array[1] = array[0] //Joga o valor da posição 0 na 1
array[i-1] = aux; // Joga o valor de aux (que era o valor da posicao 1) na posição 0