Você está na página 1de 4

Componentes Fernanda casais Janine Componentes:

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.

Você também pode gostar