Duvidas nesse codigo

public class doom2
{
public static void main(String args[])
{
int a [] = new int[4];
int b [] = new int[4];
a[0]=18;a[1]=15;a[2]=31;a[3]=2;
for (int i = 0; i < a.length; i ++)
{

	b = a;
	for (int j =  + 1; j &lt; b.length; j ++)
	 {
	 
 	  if(a[i] &gt; b[j])
 	   {
 	    int z = a[i];
 	    b[j] = a[i];
 	    b[j]= z;
 	   }
      for (int r = 0; r &lt; b.length; r ++)
      {
      System.out.println(a[r]);	
     }
  }
 	}

Eu fiz este codigo para gerar numeros crecentes de uma array, na tela.
mas duas coisas acontecem uma ele imprime mais do que foi permitido e outra ele só mostra os dois primeiros numeros correto e o resto não.
Como eu posso resolver isto?

Cara nao ta meio confuso esse codigo ai, tenta assim…

[code]public class doom2 {
public static void main(String args[]) {
int a [] = new int[4];
a[0]=18;a[1]=15;a[2]=31;a[3]=2;
int i=0;
int aux;
while(i==0){
i=1;
for(int j=0; j<a.length-1;j++){
if(a[j]>a[j+1]){
aux=a[j];
a[j]=a[j+1];
a[j+1]=aux;
i=0;
}
}
}

	for (int r = 0; r < a.length; r ++){ 
		System.out.println(a[r]); 
	} 
}

}[/code]qualquer dúvida só perguntar :slight_smile:

Esse n e o metodo bolha ??

é, fica no laco while ate que todos os numeros tenham sido ordenados.

Vc pd usa assim tb…

[code]// metodo que verifica se o numero
// que esta em cima e maior q o q esta em baixo
public void MetodoBolha( int x[] ) {
for( int i = 1; i < x.length; i++ )
for( int j = 0; j < x.length - 1 ; j++ )
if( x[ j ] > x[ j + 1 ] )
Troca( x, j, j + 1 );
} // MetodoBolha()

// metodo que faz a troca das posicoes no array
public void Troca( int y[], int primeiro, int segundo) {

  int velha; // variavel auxiliar

  velha = y[ primeiro ];
  y[ primeiro ] = y[ segundo ];
  y[ segundo ] = velha;

} // Troca[/code]

:razz: