| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/08/2006 10:56:17
|
vaninh0PJ
Entusiasta Java
![[Avatar]](/images/avatar/0)
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]
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/08/2006 11:14:07
|
luBSPJ
Virtual Machine Man
![[Avatar]](/images/avatar/0)
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/08/2006 11:39:32
|
vaninh0PJ
Entusiasta Java
![[Avatar]](/images/avatar/0)
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]
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/08/2006 11:45:05
|
CD1PJ
JavaEvangelist
![[Avatar]](/images/avatar/1)
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:// |
|
|
 |
|
|
|
|