o ALGORITMO ESTA FUNCIONANDO, SO FALTA MOSTRAR OS VALORES NA TELA, ALGUEM PODE ME AJUDAR…
vALEU
public class AlgoritmoHeap
{
public static void main(String[] args)
{
int w[]=new int[6]; //Declaracao do Vetor de 6 posicoes
w[0]=9;
w[1]=8;
w[2]=3;
w[3]=5;
w[4]=6;
w[5]=7;
int n=5;
int dir=0;
int esq=0;
int i=0;
int x=0;
int j=0;
//Montando o primeiro heap
esq = (n/2) +1;
dir=n;
while (esq>1)
{
esq=esq-1;
i=esq;
j=(2*i);
x=w[i];
}
while ((j<=dir) || (x<w[j]))
{
if ((j < dir) || (w[j] < w[j+1]))
{
j= j+1;
}
}
if (x<w[j])
{
w[i]= w[j];
i= j;
j= 2 * i;
}
w[i]= x;
//Ordenando o vetor
while (dir>1)
{
x=w[1];
w[1]=w[dir];
w[dir]=x;
dir=dir -1;
//Montando um novo heap
i=esq;
j=2 * i;
x=w[i];
}
while ((j <= dir) || (x< w[j]))
{
if ((j < dir) || (w[j]<w[j+1]))
{
j= j+1;
}
if (x < w[j])
{
w[i]=w[j];
i=j;
j=2 * i;
}
w[i]=x;
}
}
}