Duvidas No Exercicio

2 respostas
samanta.santos
Oi,pessoal...estou fazendo alguns exercicios, sendo q estou com algumas duvidas no meu entendimento de linha por linha dos códigos...Achei esse exercicio meio complexo,mas o que eu entendi foi o q eu documentei abaixo..Será q alguem pode me dizer se todo o meu entendimento está correto??E se não tiver,podem me corrigir,por favor....
public
class ShellSort{

//cria uma classe sort com vetor q recebera um inteiro

public static void sort(int[] a) {

//cria um inteiro n,que receberá o valor de a,e diz o tamanho do

//vetor(.length)

int n = a.length;

//cria um inteiro incr,que recebera o valor de n dividido por 2

int incr = n / 2;

//enquanto incr for maior ou igual a 1

while (incr >= 1){

//e para i,que ira receber incr,e i menor que n,incrementar 1 em

//cada passagem

for (int i = incr; i < n; i++){

//cria a variavel q ira receber o valor inteiro de a,com indice de i

int temp = a[i];

//cria um inteiro j,que recebera o valor de i

int j = i;

//enquanto j for maior ou igual inc e temp for menor que a,com indice

//do valor de j menos incr,então

while (j >= incr && temp < a[j - incr]){

//a,com indice j recebe a com indide de j menos incr

a[j] = a[j - incr];

//j recebe j menos incr

j -= incr;

}

//a com indice de j, recebe temp

a[j] = temp;

}

//incr recebe incr dividido por 2

incr /= 2;

}

}

public static void print(int[] a){

for (int i = 0; i < a.length; i++)

System.out.print(a[i] +
" ");

System.out.println();

}

public static void main(String[] args){

//cria um array com 10 inteiros

int[] a = new int[10];

//cria uma varialvel que recebe valores inteiros;

int i;

//para i,que irá recebe 0 e i for menor que a quantidade de a,incrementar

//1 em cada passagem

for (i = 0; i < a.length; i++)

//a com indice de i,recebe a classe de inteiro com a função Math.random

//que gera numeros aleatórios >=0 e >1, e os multiplica por 100

a[i] = (
int)(Math.random() * 100);

//imprime os valores q a recebeu da classe print

print(a);

//ordena os valores recebidos por a,com os codigos feitos na classe sort

sort(a);

//imprime os valores de a em ordem

print(a);

}

}
Agradeço a tds desde já

2 Respostas

gpd38

http://pt.wikipedia.org/wiki/Shell_sort
A ordenação Shell utiliza a quebra sucessiva da sequência a ser ordenada e implementa a ordenação por inserção na sequência obtida

No GUJ achei este POST, espero que te ajude
http://www.guj.com.br/posts/list/183464.java

Applet ShellSort
http://www.akira.ruc.dk/~keld/algoritmik_e99/Applets/Chap08/ShellSort/ShellSort.html

samanta.santos

Obrigada pelas dicas…
mas eu tambem gostaria de saber,se meus comentarios estão corretos…
eu os colokei p tentar explicar o q eu entendi…
então gostaria de saber se eu entendi td direitinho…
caso tenha entendido algo errado,poderia me corrigir??
obrigada

Criado 2 de julho de 2010
Ultima resposta 2 de jul. de 2010
Respostas 2
Participantes 2