E ae galera!!! Olha eu estou implementando um sistema que usa o algoritmo do ShellSort. Só que na hora que eu vou compilar e executar o programa ele da pau…Eu testo o programa mas ele da erro por causa do Array do java que inicia com 0 ao invez de 1 . Se eu acaso implementar o meu array com 1 de inicio na hora que eu chamo meu metodo insereShellSort ele nao executa de forma correta… ele passa os indices… por favor de uma olhada no codigo. Se vcs puderem testar o codigo com esses valores (18 - 15- 7- 9- 23- 16 )e me disserem oq eu devo fazer para adaptar o codigo eu ficarei grato…[code]
// Metodo de Shellsort
public void insereShellSort(int[] nume, int grupo, int QtdadeGrupo) {
int k = 0;
int j = 0;
int chave = 0;
int i = grupo + QtdadeGrupo;
while (i < nume.length){
k = grupo;
j = i - QtdadeGrupo;
chave = nume[i];
while (j >= grupo && k == grupo) {
if (chave <= nume[j]){
nume[j + k] = nume[j];
j = j - QtdadeGrupo;// aqui da pau se ele fazer como abaixo
}else {
k = j + QtdadeGrupo;
}
}
nume[k] = chave;
i = i + QtdadeGrupo;
}
}
//Metodo q implementa ShellSort
public void shellSort(int[] nume) {
int h = nume.length / 2;
while (h != 0) {
for (int i = 1; i <= h; i++){ // o meu metodo ShellSort começa com 1 ate 3 h
insereShellSort(nume,i , h);
}
h = h / 2;
}
}[/code]