Si se quiere ordenar una lista descendentemente, entonces se aplica el mismo procedimiento, solo que ahora al comparar se pregunta si el valor del primer elemento es menor que el segundo.
Nuestra clase se llama burbuja.java y contiene el metodo ordenar asi como un metodo para imprimir la lista.
/**
* @web http://jc-mouse.blogspot.com/
* @author mouse
*/
public class burbuja {
int[] vector ;
int elementos=0;
boolean bandera=true;
public burbuja (int[] v){
this.vector=v;
}
public int[] ordenar(){
int p1;
int p2;
int y=0;
bandera=true;
elementos = vector.length;
while((elementos > 1) && (bandera==true) )
{
y=0;
p1 = vector[y];
p2 = vector[y+1];
elementos--;
bandera=false;
for(int i=0; i < elementos; i++){
if (p1>p2){
vector[i]=p2;
vector[i+1]=p1;
bandera=true;
}//fin de si
System.out.println("ordenando: "+ Mostrar(vector));
y++;
if (y < elementos){
p1 = vector[y];
p2 = vector[y+1];
}
}//fin for
}//fin de mientras
return vector;
}
//para imprimir el array
public String Mostrar(int[] v){
String s=" | ";
for (int i=0; i < v.length; i++){
s += v[i] + " | ";
}
return s;
}
}
Para implementar esta clase, el main debe contener el siguiente codigo:
public class Main {
public static void main(String[] args) {
//creamos un array y llenamos este con numeros al azar
int[] c = null ;
c = generarlista(5);
//creamos el objeto burbuja y mostramos
burbuja b = new burbuja(c);
System.out.println("ORIGINAL : "+ b.Mostrar(c));
System.out.println("ORDENADO : "+ b.Mostrar(b.ordenar()));
}
//genera un array de n elementos
public static int[] generarlista(int n){
int[] v = new int[n];
Random rand = new Random();
for (int i=0; i<v.length; i++){
v[i]=rand.nextInt(1000);
}
return v;
}
}
4 comentarios:
Excelente código!
Excelente explicación Muchas Gracias :)
Les recomiendo esta pagina, puede ser de mucha utilidad
http://java-elrincondetucasa.blogspot.mx
me podrias mandar el codiigo
Publicar un comentario