METODO HEAPSORT
me gustaria que me ayudaseis con elsiguiente codigo.
Ya que al localizar el padre que es menor que el hijo me quedo estancao a la hora de seguir. a ver si me podeis ayudar
graciassss :)
Ya que al localizar el padre que es menor que el hijo me quedo estancao a la hora de seguir. a ver si me podeis ayudar
graciassss :)
public List getSortedContent1(){
ArrayList monticulo=new ArrayList();
monticulo.addAll(cola);
int j=size();
int i=0;
//recorrer el monticulo.
for(i=0;i=i){
//miro si cualquiera de los hijos es mayor que el padre.
//hijo derecho es menor que el padre.
if(comparar(monticulo.get(j),monticulo.get((j/2)-1))0){
//guardo el valor del hijo mayor.
E hijoMayor=monticulo.get(j);
int padre=(j/2)-1;
//intercambio valores, hijo sube un nivel
monticulo.set(padre, hijoMayor);
//padre baja.
monticulo.set(j, monticulo.get(padre));
//pregunto si padre es mejor que alguno de los hijos.
}else{
if((monticulo.get(j)==null) &&
monticulo.get(j-1)!=null
&& comparar(monticulo.get(j-1),monticulo.get(j/2))>0){
E hijoMayor=monticulo.get(j-1);
int padre=j/2;
monticulo.set(j-1, monticulo.get(padre));
monticulo.set(padre, hijoMayor);
}
}
}
}
}
return monticulo;
}