• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vasco16

Como altero este metodo para que ordene bem?

1 mensagem neste tópico

Boas pessoal este metodo que criei nao está a ordenar bem porque nao ordena os laterais, em caso de empate..

public static int[] ordena(int[] soma, double[] media){

	int[] ordem = new int[soma.length];


	int aux1,aux2,aux3,trocas;
	double auxm;

	for(int j = 0; j < ordem.length; j++)
		ordem[j] = j;

	aux1= 0; aux2 = 0; aux3 = 0; auxm = 0; trocas = 0;

	do{
		trocas = 0;
		for(int i = 0; i < soma.length-1; i++){

		if(soma[i+1] > soma[i]){
			aux1 = ordem[i];
			ordem[i] = ordem[i+1];
			ordem[i+1] = aux1;


			aux2 = soma[i];
			soma[i] = soma[i+1];
			soma[i+1] = aux2;


			auxm = media[i];
			media[i] = media[i+1];
			media[i+1] = auxm;



			trocas = 1;
		}

		if(soma[i+1] == soma[i]){
			if(media[i+1]>media[i]){
			aux3 = ordem[i];
			ordem[i] = ordem[i+1];
			ordem[i+1] = aux3;
			}
		}				
		}
	}
	while(trocas == 1);

	return ordem;
    }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora