Sunteți pe pagina 1din 3

PROGRAMACION ORIENTADA A OBJETOS

Prof. Yolanda Catalina Navarrete


Alum. Cynthia Berenice Montes Santamaría
INFORMATICA
#410

Algoritmo De La Burbuja
El ordenamiento burbuja hace múltiples pasadas a lo largo de una lista. Compara los
ítems adyacentes e intercambia los que no están en orden. Cada pasada a lo largo de
la lista ubica el siguiente valor más grande en su lugar apropiado. En esencia, cada
ítem “burbujea” hasta el lugar al que pertenece.
La Figura 1 muestra la primera pasada de un ordenamiento burbuja. Los ítems
sombreados se comparan para ver si no están en orden. Si hay n ítems en la lista,
entonces hay n−1n−1 parejas de ítems que deben compararse en la primera pasada.
Es importante tener en cuenta que, una vez que el valor más grande de la lista es
parte de una pareja, éste avanzará continuamente hasta que la pasada se complete.

Figura 1: La primera pasada de ordenamiento Burbuja


Al comienzo de la segunda pasada, el valor más grande ya está en su lugar.
Quedan n−1n−1 ítems por ordenar, lo que significa que habrá n−2n−2 parejas. Puesto
que cada pasada ubica al siguiente valor mayor en su lugar, el número total de
pasadas necesarias será n−1n−1. Después de completar la pasada n−1n−1, el ítem
más pequeño debe estar en la posición correcta sin requerir procesamiento adicional.
El ActiveCode 1 muestra la función ordenamiento Burbuja completa. La función recibe
la lista como un parámetro, y lo modifica intercambiando ítems según sea necesario.
La operación de intercambio es ligeramente diferente en Python que en la mayoría de
los otros lenguajes de programación. Normalmente, el intercambio de dos ítems en
una lista requiere una ubicación de almacenamiento temporal (una ubicación de
memoria adicional). Un fragmento de código como

temp = unaLista[i]

unaLista[i] = unaLista[j]
unaLista[j] = temp

intercambiará los ítems ii-ésimo y jj-ésimo de la lista. Sin el almacenamiento temporal,


uno de los valores sería sobrescrito.
En Python es posible realizar la asignación simultánea. La instrucción a,b=b,a dará
lugar a que se realicen dos instrucciones de asignación al mismo tiempo (véase
la Figura 2). Usando la asignación simultánea, la operación de intercambio se puede
hacer en una sola instrucción.
Las líneas 5-7 en el ActiveCode 1 realizan el intercambio de los ítems ii-ésimo
e (i+1)(i+1)-ésimo utilizando el procedimiento de tres pasos descrito anteriormente.
Note que también podríamos haber utilizado la asignación simultánea para
intercambiar los ítems.

S-ar putea să vă placă și