Bubble Sort
Last updated
Last updated
Bubble Sort o Ordenamiento Burbuja es uno de los algoritmos más simples que existen. Su complejidad es cuadrática, es decir .
La idea básica consiste en encontrar el elemento más pequeño o grande (según sea el ordenamiento) y hacer que pase al final del array (burbujearlo). Una vez pasado este elemento, debemos encontrar el siguiente más grande o más pequeño de los elementos restantes y pasarlo al penúltimo lugar, y asi sucesivamente hasta a acabar con todos los elementos.
La acción de mover un elemento al final se realiza con comparaciones de dos elementos adyacentes consecutivos de izquierda a derecha.
Supongamos que ordenamos de mayor a menor y la lista a ordenar es la siguiente:
Primera iteración
Comparamos los dos primeros elementos (7 y 6), y si estan en desorden los intercambiamos.
Comparamos el siguiente par de elementos (7 y 5), y si están en desorden los intercambiamos.
Comparamos el siguiente par de elementos (7 y 4), y si están en desorden los intercambiamos.
Comparamos el siguiente par de elementos (7 y 3), y si están en desorden los intercambiamos.
Como pudiste observar el elemento que quedó al final fue el mayor de todos (el 7). Repetimos el proceso puesto que la lista aún no está ordenada.
Segunda Iteración
Comparamos los dos primeros elementos (6 y 5), y si estan en desorden los intercambiamos
Comparamos el siguiente par de elementos (6 y 4), y si están en desorden los intercambiamos.
Comparamos el siguiente par de elementos (6 y 3), y si están en desorden los intercambiamos.
El siguiente par de elementos es (5 y 7), pero por la iteración anterior podemos asegurar que la comparación es innecesaria puesto que el 7 ya está ordenado, es decir, el 7 fue burbujeado hasta al final por la primer iteración por ser el mayor de todos y por tanto cualquier otro elemento anterior no puede ser mayor a este.
Tercera iteración
Comparamos los dos primeros elementos (5 y 4), y si estan en desorden los intercambiamos
Comparamos el siguiente par de elementos (5 y 3), y si están en desorden los intercambiamos.
El siguiente par de elementos es (5 y 6), pero por la iteración anterior podemos asegurar que la comparación es innecesaria puesto que el 6 ya está ordenado, es decir, el 6 fue burbujeado hasta el penúltimo lugar por la segunda iteración por ser el mayor de todos los elementos anteriores.
Cuarta Iteración
Comparamos los dos primeros elementos (5 y 4), y si estan en desorden los intercambiamos
El siguiente par de elementos es (4 y 5), pero por la iteración anterior podemos asegurar que la comparación es innecesaria puesto que el 5 ya está ordenado, es decir, el 5 fue burbujeado hasta el antepenúltimo lugar por la segunda iteración por ser el mayor de todos los elementos anteriores.
Además notemos que una cuarta iteración es innecesaria puesto que al acomodar el los n-1 elementos del array automaticamente el n-ésimo elemento es acomodado. Así podemos deducir que el máximo de iteraciones necesarias para ordenar un arreglo de tamaño N es N-1 iteraciones.