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);
}
}
Duvidas No Exercicio
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....
Agradeço a tds desde já
2 Respostas
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
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
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Inteligencia Artificial e ChatGPT: Da revolucao dos... Por Fabricio Carraro — Casa do Codigo