Top Menu

24 de marzo de 2013

Java: Ordenamiento de Burbuja

El ordenamiento por burbuja, o bubble sort, es un algoritmo bastante simple. Empieza al principio de los datos y compara los primeros dos datos (0,1) para saber cual es mayor, después repite el siguiente paso pero usando el resultado de la primera comparación con el segundo par de datos (1,2). Por lo tanto no es conveniente usarlo en cantidades largas de datos. Por ejemplo si tenemos la siguiente lista:

24,57,46,37,12,92,86,33

En el primer paso se realizan las siguientes operaciones:

x[0] con x[1] (24 con 57)  no intercambio.
x[1] con x[2] (57 con 46)      intercambio.
x[2] con x[3] (57 con 32)      intercambio.
x[3] con x[4] (57 con 12)      intercambio.
x[4] con x[5] (57 con 92)  no intercambio.
x[5] con x[6] (92 con 86)      intercambio.
x[6] con x[7] (92 con 33)      intercambio.

Dejándonos con lo siguiente:

24,46,32,12,57,86,92

Con lo cual podemos estar seguros que ahora el elemento mas grande se encuentra al final de la lista. Este procedimiento se repetiría hasta que la lista ya no sufra cambios.

El siguiente código muestra la implementación en java:

public static int[] burbuja(int[] arreglo) {
int auxiliar;
int[] arregloOrdenado;
for(int i = 2; i < arreglo.length; i++){
for(int j = 0;j < arreglo.length; j++){
if(arreglo[j] > arreglo[j+1]){
auxiliar = arreglo[j];
arreglo[j] = arreglo[j+1];
arreglo[j+1] = auxiliar;
}
}
}
arregloOrdenado = arreglo;
return arregloOrdenado;
}
view raw Burbuja1.java hosted with ❤ by GitHub

EL código anterior realiza el ordenamiento en todos los elementos de la lista, pero como se menciono anteriormente, el último elemento siempre será el mayor. Debido a esto se puede optimizar el código agregando a la linea 5 una resta al tamaño del recorrido: for(int j = 0;j < arreglo.length-i; j++)

0 comentarios:

Publicar un comentario