Ordenação de itens de um array

4 respostas
ademanes

Gente estou iniciando em java, e tentei fazer um programa que gera numeros aleatorios de 1-100 e armazena num array de 10 posições.
Blz consegui fazer, agora preciso após a ordenação informar qual era a posição anterior no array em que o numero nam ordenado estava.
Abaixo eis o meu codigo:

Desde ja agradeco a vcs.

===============================================

public class Ordena
{

public static void main(String args[])

{
	
	int a =0;
	int b =0;
	int num[] = new int[10];
	boolean sair = true;
	
	
	for (int i=0; i<num.length; i++)
	{
 		num[i] = (int) (Math.random()*100);
 		num[i] = i;
		System.out.println("O valor gerado aleatoriamente eh: "+num[i]);
		
	}
	
	
	while (sair)
	{
		sair=false;
		
		for (int x=0; (x<num.length-1); x++)
		{
			
			if (num[x]>num[x+1])
			{
 					a=num[x];
 					b=num[x+1];
 					num[x]=b;
 					num[x+1]=a;
				sair=true;
			}
			
		}
		
	}
	for (int y = 0; y < num.length; y++)
	{
		System.out.println(" Ordenado :"+num[y]);	
	}
	
}

}

4 Respostas

quikkoo

faça uma copia do seu array antes de ordenar, qndo precisar da posicao anterior consulte esse array

so isso ja resolve, mas se vc nao qzer ter q procurar o numero no array velho vc pode fazer um array de posicoes, ex:

array desordenado: 5 15 0 20 10 array ordenado : 0 5 10 15 20 array de posicoes: 3 1 5 2 4

ademanes

Obrigado pela dica, consegui depois de muito esforco!.

sapulha

ademanes, isso é ótimo para exercitar a lógica, mais lembre-se, em aplicações práticas vc tem método de ordenação na classe Array.

Consulte a API.

rodrigo_salla

Tente copiar o array para poder ver a posicao anterior.

arraycopy (referencia origen, posicao inicial, referencia destino, posicao inicial, contador);

Criado 23 de novembro de 2006
Ultima resposta 26 de dez. de 2006
Respostas 4
Participantes 4