pCwZdyIT6DuzU0zG - 6lSWBWreyylHyMrX-Algoritmo de Ordenamiento Burbuja
pCwZdyIT6DuzU0zG - 6lSWBWreyylHyMrX-Algoritmo de Ordenamiento Burbuja
En el ordenamiento por selección, cada recorrido ubicaba primero los valores menores en sus
posiciones definitivas. En contraste, el algoritmo de burbuja hace lo propio primero con los valores
mayores usando un mecanismo distinto. No obstante, los dos algoritmos se asemejan en su sencillez
y facilidad de implementación.
El proceso se realiza recorriendo el arreglo de izquierda a derecha, esto es, desde la pareja en las
posiciones 0 y 1 hasta la pareja en posiciones n-2 y n-1.
El resultado de la primera iteración de este proceso es que el mayor valor en el arreglo es ubicado
en la posición n-1. Si se realiza el proceso una segunda vez, esta vez ignorando la posición n-1, al
finalizar se tendrá el segundo mayor valor del arreglo en la posición n-2. Después de k recorridos
similares sobre el arreglo, las últimas k posiciones contendrán los k mayores valores del arreglo,
ordenados.
Pareja Pareja
Recorrido
Una cantidad máxima de n-1 recorridos es necesaria para ordenar el arreglo, sin embargo, es posible
que el objetivo sea alcanzado en menos recorridos.
Las flechas azul y verde recorren las parejas de posiciones consecutivas del arreglo. Inicialmente se
comparan las posiciones primera y segunda.
En este caso, el ser 5 mayor que 2, los valores son intercambiados.
Posición 1
Ahora, se comparan los valores en las posiciones segunda y tercera. En este caso, los dos valores
se encuentran ya en orden, esto es, 5 es menor que 8, por lo que no se hace modificación al arreglo.
Posición 2
Se comparan las posiciones tercera y cuarta. Dado que los valores están en orden no se hacen
cambios.
Posición 3
Los valores en las posiciones cuarta y quinta no se encuentran ordenados. Esto obliga a que sean
intercambiados.
Posición 4
Los valores en las posiciones quinta y sexta no están en orden, así que son intercambiados.
Posición 5
Como se puede observar, el mayor valor del arreglo, en este caso el 9, ha sido
desplazado hasta la última posición, su posición correcta.
Dado que el arreglo aún no se encuentra ordenado, debe hacerse un nuevo
recorrido, en donde se compara el 2 y el 5 y están en orden. Pero se compara el 8
y el 3 y como el 8 es mayor, son intercambiados de lugar.
En los siguientes pasos del recorrido, el 8 intercambiará lugares con cada uno de
los valores siguientes, hasta situarse en la penúltima posición del arreglo.
El arreglo aún no se encuentra ordenado. Se inicia un nuevo recorrido.
Aunque el arreglo está casi ordenado, un cuarto recorrido es necesario. El 2 y 3 se
encuentran ordenados por lo que mantienen sus posiciones.
Como resultado del proceso hasta este punto, los cuatro mayores valores del arreglo, 6, 7, 8 y 9, se
encuentran en sus posiciones definitivas. Más aún, un último recorrido sobre el arreglo permite
observar que éste se encuentra ya ordenado. De esta forma, concluye la ejecución del algoritmo. Al
igual que el algoritmo de selección, el ordenamiento es realizado sobre el mismo arreglo de entrada.
La variable “esta_ordenado” indica si el arreglo ya se encuentra ordenado o no. Esta variable señala
el fin del algoritmo.
Al iniciar, no hemos explorado el arreglo y por tanto se asume que no se encuentra ordenado. Esto
se representa en el programa dándole a “esta_ordenado” un valor inicial de falso.
Cada recorrido deja al menos un valor del arreglo en su posición definitiva, por lo que no es necesario
escrutar dicha posición nuevamente. La variable “ultimo_no_ordenado” sirve como delimitador de la
porción del arreglo que aún debe ser procesada.
Inicialmente, todo el arreglo debe ser revisado, por lo que está variable toma como valor n-1
El ciclo principal del programa hace múltiples recorridos por el arreglo hasta que éste quede
ordenado. Al iniciar cada recorrido, se cambia el valor de la variable “esta_ordenado” a verdadero.
Las flechas azul y verde de las gráficas anteriores son representadas en el pseudocódigo por j y j+1,
respectivamente.