To com problemas em inserir um numero em um vetor. (LOGICA)  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
vaninh0PJ
Entusiasta Java
[Avatar]

Membro desde: 08/08/2006 00:00:00
Mensagens: 16
Offline

Esse é meu codigo:
(no fim desse post vou descreve-lo)



Em um vetor JA ordenado eu preciso inserir um numero no lugar correto dele,
ja consegui colocar ele no comeco, no fim e tambem ja consegui faze um codigo que ache seu lugar no meiu do vetor.
O problema é que eu nao to conseguindo passar os numeros para a direita, e inseri-lo no lugar desejado =/

(ps: nao posso simplesmente inserir ele no final e usar um metodo de ordenacao, tenho que inseri-lo direto no lugar dele)

bem, eh isso, to apanhando muito =(
abraço´s[/code]
[WWW] [ICQ]
luBSPJ
Virtual Machine Man
[Avatar]

Membro desde: 29/05/2004 00:00:00
Mensagens: 718
Offline

vc consegue achar o lugar onde deve inserir o numero



da posição i para frente, todos números precisarão ser deslocados para direita do vetor, e isso vc ja faz quando vc inclui no inicio



unica coisa que mudaria era que vc naum vai faz um looping enquanto for maior que 0 e sim enquanto for maior/igual a i.
Eu não tenho como ficar testando agora, mas meio dia posso dar uma testada, mas ficaria mais ou menos assim acho:



meio dia eu dou uma testada e vejo se funca, mas a principio acho que é isso...

valeu.
[WWW] aim icon [ICQ]
vaninh0PJ
Entusiasta Java
[Avatar]

Membro desde: 08/08/2006 00:00:00
Mensagens: 16
Offline

opa,
aparentemente consegui, mas ainda to testando pra ve se algum numero nao da erro...
ta ai o codigo pra qm quer da uma olhada
(uke eu inclui vo por em negrito)



incluido:
int counter = 0; no comeco do codigo

counter == 0 no if do meio

int ultimo = numeros.length - 2;
for(int j =ultimo;j>=i+1;j--){
numeros[j+1] = numeros[j];
}
numeros[i+1] = temp;
counter += 1;

isso ai foi o que criei agora[/b]
[WWW] [ICQ]
CD1PJ
JavaEvangelist
[Avatar]

Membro desde: 22/09/2004 00:00:00
Mensagens: 305
Offline

Olá vaninh0,

Pra "passar os valores pra direita", é só copiar os elementos à direita do elemento inserido para uma posição a mais (certificando-se que o array cabe esse aumento). A maneira mais intuitiva de se fazer isso é:



Mas existe uma outra maneira de se fazer isso, utilizando a classe System:



(Eu preferi fazer em métodos, pra ficar mais isolado do seu exemplo, senão eu ia ter que tentar entender ele, e eu tô com preguiça )

Qualquer dúvida, poste aqui!

Até mais,

http://
[WWW] [ICQ]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team