Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con ordenacion

Estas en el tema de Ayuda con ordenacion en el foro de Java en Foros del Web. Hola a todos! Tengo una lista de ofertas y quiero ordenarlas de mayor duración a menor duración. Es decir, en orden decreciente. Si pongo este ...
  #1 (permalink)  
Antiguo 19/04/2007, 02:11
 
Fecha de Ingreso: febrero-2006
Mensajes: 174
Antigüedad: 18 años, 2 meses
Puntos: 0
Ayuda con ordenacion

Hola a todos!

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<= vectorOfertas.size()- 2j++) {
           for (
int i 0<= vectorOfertas.size()-j-2i++){ 
        
              
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 
muchas gracias
  #2 (permalink)  
Antiguo 19/04/2007, 04:21
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Ayuda con ordenacion

¿La idea es "implementar un algoritmo de ordenación" u obtener el resultado?

En el segundo caso, quizá fuera más fácil utilizar las facilidades que tienen las colecciones (Collection) para ordenar sus elementos.

S!
  #3 (permalink)  
Antiguo 19/04/2007, 08:23
Avatar de Asgaroth  
Fecha de Ingreso: abril-2007
Mensajes: 79
Antigüedad: 17 años, 1 mes
Puntos: 4
Re: Ayuda con ordenacion

pss no estoy muy seguro pero creo que peudes hacer lo siguiente:

Código PHP:
for (int j vectorOfertas.size(); j>1j--) { 
           for (
int i 1ji++){  
         
              
Oferta of1=(Oferta)vectorOfertas.elementAt(i-1); 
              
Oferta of2=(Oferta)vectorOfertas.elementAt(i); 
              
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 
Creo ke eso te funciona ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:46.