Metodo Burbuja
Metodo Burbuja
Metodo Burbuja
Definición:
El método de Ordenación de burbuja (Bubble Sort) es el mas sencillo algoritmo de
ordenamiento a comparación de otros. Su funcionamiento consta en ir revisando cada
elemento del arrays que va a ser ordenado con el siguiente, si es que encuentra que
posición no es la correcta los intercambia. Este algoritmo posee ese nombre por su
forma en la que suben por la lista los elementos durante los intercambios como si fueran
pequeñas “burbujas”. También es conocido como el método de intercambio directo.
Puesto que solo usa comparaciones para operar elementos, se le considera un algoritmo
de comparación siendo el más sencillo de implementar.
Algoritmo de la burbuja:
Fuera el caso de un array con n elementos, entonces la ordenación requiere como hasta
n-1 iteraciones. Por cada iteración se comparan los elementos adyacentes y se
intercambian sus valores cuando se cumpla que el primer elemento es mayor que el
segundo elemento. Cuando la iteración 0 esa completa el array A[n-1] esta ordenada y
el frente de la lista permanece desordenada.
Estabilidad: Este algoritmo nunca intercambia registros con claves iguales. Por
lo tanto, es estable.
Requerimientos de Memoria: Este algoritmo sólo requiere de una variable
adicional para realizar los intercambios.
Tiempo de Ejecución: El ciclo interno se ejecuta n veces para una lista de n
elementos. El ciclo externo también se ejecuta n veces. Es decir, la complejidad
es n * n = S(n2). El comportamiento del caso promedio depende del orden de
entrada de los datos, pero es sólo un poco mejor que el del peor caso, y sigue
siendo S(n2).
Ventajas:
Fácil implementación.
Desventajas:
Muy lento.
Primera iteración:
13 9 10 6 2 18
Resultado de la primera Iteración.
Segunda iteración:
Tercera iteración:
Cuarta iteración:
Quinta iteración:
Primera iteración:
12 14 15 18 13 15 es mayor a 18 NO (Ordenados)
Segunda Iteración.
12 14 13 15 18 12 es mayor a 14 NO (Ordenados)
12 13 14 15 18 12 es mayor a 13 NO (Ordenados)
En consecuencia:
El algoritmo de ordenación de burbuja mejorado contempla dos bucles anidados: el
bucle externo controla la cantidad de pasadas (al principio de la primera pasada todavía
no se ha producido ningún intercambio, por tanto, la variable interruptora se pone a
valor falso (0); el bucle interno controla cada pasada individualmente y cuando se
produce un intercambio, cambia el valor de interruptor a verdadero (1). El algoritmo
terminará, bien cuando se termine la última pasada (n − 1) o bien cuando el valor del
interruptor sea falso (0), es decir, no se haya hecho ningún intercambio. La condición
para realizar una nueva pasada se define en la expresión lógica.
JOYANES AGUILAR, L., & ZAHONERO MARTÍNEZ, I. (2010). PROGRAMACIÓN EN C, C++, JAVA Y UML (1A. ED. --
.). MÉXICO D.F.: MCGRAW-HILL.