Escolar Documentos
Profissional Documentos
Cultura Documentos
Gnome Sort
Gnome Sort
Algoritmo similiar ao Insertion sort com a diferena que o Gnome sort leva um elemento para sua posio correta, com uma seqencia grande de trocas assim como o Bubble sort. O algoritmo percorre o vetor comparando seus elementos dois a dois, assim que ele encontra um elemento que est na posio incorreta, ou seja, um nmero maior antes de um menor, ele troca a posio dos elementos, e volta com este elemento at que encontre o seu respectivo lugar.
public void gnomeSort() { int i = 1, troca = 0; while(i < v.length) { if (i == 0 || v [i-1] <= v [i]) i++; else { troca = v [i - 1]; v[i - 1] = v[i]; v[i] = troca; i --; } } }
Exemplo:
12
9
7
7
6
4 9
6 4 7 9 12
4 6
9
7 6
6
4 12
7
9 12
12
O n 12 maior e est antes do n 9 , ento foi feita a troca de posies dos elementos e o algoritmo volta com o 12 fazendo a comparao dos elementos dois a dois e inserindo-o no lugar certo, como mostra a figura. Aps iniciamos a comparao do 7 com o 6 , trocamos as posies e o algoritmo volta com o 7 at inseri-lo na posio correta, deste maneira todos os elementos sero ordenados corretamente, como mostra a ltima tabela.