Tengo una lista de ofertas y quiero ordenarlas de mayor duración a menor duración. Es decir, en orden decreciente.
Si pongo este algoritmo en orden creciente (menor a mayor), funciona bien, pero al cambiarlo (mayor a menor) se mete en un bucle infinito. LLevo dos dias mirandolo, y no soy capaz de saber qué le pasa. Alguien me puede ayudar?
Código PHP:
for (int j = 0; j <= vectorOfertas.size()- 2; j++) {
for (int i = 0; i <= vectorOfertas.size()-j-2; i++){
Oferta of1=(Oferta)vectorOfertas.elementAt(i);
Oferta of2=(Oferta)vectorOfertas.elementAt(i+1);
int duracion1=(int)of1.getDiaFin().getTime()-(int)of1.getDiaIni().getTime();
int duracion2=(int)of2.getDiaFin().getTime()-(int)of1.getDiaIni().getTime();
if (duracion1 <= duracion2) {
Oferta temp = of2;
vectorOfertas.insertElementAt(of1,i);
vectorOfertas.insertElementAt(temp,i+1);
}//if
}//for i
}//for j