// Metodo ComboSort
public void ComboSort(int[] numeros) {
boolean troca = true;
int aux = 0;
int espaco = numeros.length;
double divisor = 1.3;
int resultado = 0;
int contTroca = 0;
do {
resultado = (int) (espaco / divisor);
espaco = Math.max(resultado, 1);
if ((espaco == 9) || (espaco == 10))
espaco = 11;
troca = false;
for (int i = 0; i < numeros.length - espaco; i++){
if (numeros[i] > numeros[i + espaco]) { // ele nao entra aqui
contTroca++;
aux = numeros[i];
numeros[i] = numeros[i + espaco];
numeros[i + espaco] = aux;
troca = true;
}
else {
System.out.println("nao");
}
}
System.out.println("o numero é " + contTroca);
}while((troca != false) && (espaco != 1));
}
Metodo Pente ComboSort
O
E ae galera!! blz!! Olha estou com um probleminha na implementacao do metodo ComboSort(metodo pente). Na hora que eu comparar os numeros no array ele nao entra na condicao if(). Eu preciso imprimir o numeros de trocas no array. Agradeco a ajuda..
1 Resposta
R
Colega creio que um dos seus problemas seja nesse tipo de abordagem:
int espaco = numeros.length;
Lembra-se que em java a posição 0 no vetor é válido, logo essa inicialização deve ficar como:
int espaco = numeros.length-1;
Caso contrário, provavelmente dará um erro ou não funcionará.
Creio que isso já irá te ajudar a resolver parte do seu problema ou pelo menos tentar identifica-lo com o pé no chão.
Eu acho que você vai ter que reestruturar mais algumas coisas no seu código para ele funcionar da forma que você deseja.
Boa sorte.
Abraços,
Criado 26 de setembro de 2006
Ultima resposta 27 de set. de 2006
Respostas 1
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