Boa noite amigos,
Estou com uma duvida que considero basica, mas nao estou conseguindo
solucionar
preciso pegar de forma recursiva a mediana de um array.
Exemplo: um array de 15 posicoes: 0 a 14 :
Primeira mediana: 7
fim (14) - inicio (0) / 2
Ate ai tudo certo, entao preciso pegar de forma recursiva m1 e m2:
m1 = mediana(0,6) = 3
m2 = mediana(8,14) = 11
e assim sucessivamente m3 = mediana(0,m1) e m4 = mediana(4,6)
m3 deveria retornar = 1 e m4 deveria retornar = 5
assim m5 = 9 e m6 = 13
e prosseguir ate pegar todos os numeros...
A sequencia de retorno do array 0-14 ficaria assim:
7,3,11,1,5,9,13,0,2,4,6,8,10,12,14
Fiz o seguinte codigo mas nao esta funcionando:
----------------------------------------------------------
public void balanceamento02Mediana(int inicio, int fim) throws
Exception{
/* Tentando uma outra abordagem de mediana conforem explciacao de
lucca*/
int medianaFixa = 0;
int mediana = 0;
if(fim-inicio > 1){
if((fim-inicio)%2 == 0){
mediana = (fim-inicio) / 2;
medianaFixa = arrayInPreOrdem.length/2;
}else{
mediana = ((fim-inicio-1) / 2);
medianaFixa = (arrayInPreOrdem.length-1)/2;
} // if else
System.out.println(inicio + mediana);
inserirArvore(arrayInPreOrdem[inicio +
mediana][0],arrayInPreOrdem[inicio + mediana][1]);
balanceamento02Mediana(mediana-1, fim);
balanceamento02Mediana(inicio, mediana-1);
} // if
} // mtd balanceamento02Mediana
----------------------------------------------------------
Obrigado pela atenção
--
------------------------------------------------------
Wendel Fabiano Ribeiro da Silva
wfrsilva@gmail.com - wfrsilva@hotmail.com - wfrsilva@inf.ufsc.br
http://www.via6.com/wfrsilva - http://www.inf.ufsc.br/~wfrsilva -
http://br.linkedin.com/pub/wendel-fabiano-ribeiro-da-silva/18/BBA/601
(48) 8835-4452
Florianópolis - SC
[As partes desta mensagem que não continham texto foram removidas]
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br