El documento describe el método de ordenamiento burbuja. Este método ordena un arreglo revisando cada par de elementos adyacentes y intercambiándolos si están en orden incorrecto. Esto requiere n-1 pasadas sobre el arreglo para ordenarlo completamente. El método es simple pero ineficiente para arreglos grandes.
2. Método de Burbuja
Integrantes:
• Diego Julián Serna Rodríguez 201360153
• Jefferson Tapias Monsalve 201360406
• Andrés Felipe González Rojas 201360017
3. Introducción
El ordenamiento de arreglos es una actividad frecuente
en muchas actividades del quehacer humano. Es común
ordenar listas de números en orden creciente o
decreciente; como lo es el de ordenar alfabéticamente
nombres de personas u objetos.
4. Objetivo
• Comprender el funcionamiento del método de
ordenamiento de un arreglo conocido como método
burbuja.
• Crear una aplicación en java que aplique el método
de burbuja a un arreglo cuyos datos los ingresa el
usuario por teclado.
5. BURBUJA.
La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de
ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con
el siguiente, intercambiándolos de posición si están en el orden equivocado. Es
necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios,
lo cual significa que la lista está ordenada.
6. BURBUJA.
Este algoritmo obtiene su nombre de la forma con 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 del intercambio directo. Dado que solo usa comparaciones
para operar elementos, se lo considera un algoritmo de comparación, siendo el más
sencillo de implementar.
7. BURBUJA.
Se le denomina ordenación por burbuja debido a que los valores mas
grandes burbujean a la parte superior de modo similar como suben las
burbujas en el agua.
8. BURBUJA.
Vamos a intentar ver informalmente el funcionamiento del algoritmo.
Supondremos que el array tiene n elementos.
9. BURBUJA.
Realizaremos n-1 pasadas. En cada una de ellas lograremos que el elemento de mayor
valor se sitúe al final. El motivo de realizar n-1 pasadas y no n es que si en cada pasada
logramos ordenar un elemento, cuando tengamos en orden los n-1 del final del array el
elemento que queda es necesariamente el más pequeño de todos.
10. BURBUJA.
En cada pasada recorreremos el array empezando por el principio hasta
un cierto punto, comparando cada elemento con el siguiente, y si un
elemento y el siguiente no están en orden, los intercambiamos de
posición, logrando que el mayor de ellos vaya ascendiendo por el array.
11. BURBUJA.
En la primera pasada, compararemos cada uno de los n-1 primeros elementos con el
siguiente, y lograremos que en la última posición se coloque el mayor de ellos.
12. BURBUJA.
En la segunda pasada, compararemos cada uno de los n-2 primeros elementos con el
siguiente. No llegaremos a hacer ninguna comparación que implique al último elemento
del array, porque sabemos que ese ya lo colocó en orden la primera pasada. Al término
de la segunda pasada quedará también en orden el penúltimo elemento del array.
13. BURBUJA.
En la tercera pasada haremos lo mismo con los n-3 primeros elementos, logrando
colocar el antepenúltimo elemento... y así sucesivamente, hasta que tengamos
colocados los n-1 últimos elementos. Cuando estemos en esa situación, el primer
elemento también estará en orden, ya que será el más pequeño de todos.
14. BURBUJA.
Vemos un ejemplo sencillo. Supongamos que queremos ordenar estos
valores con el algoritmo de la burbuja: 45, 52, 21, 37, 49, así pues, n=5
15. BURBUJA.
1ª pasada: comparamos cada uno de los cuatro primeros (n-1) con los que le siguen.
Si un elemento no está en orden con respecto al siguiente, los intercambiamos de
sitio y seguimos. El elemento de mayor valor (52) irá "ascendiendo" hasta la última
posición.
45, 52, 21, 37, 49 → Comparar 45 y 52. (1º y 2º) Están en orden. Seguimos.
45, 52, 21, 37, 49 → Comparar 52 y 21. (2º y 3º) No están en orden. Intercambio.
45, 21, 52, 37, 49 → seguimos
45, 21, 52, 37, 49 → Comparar 52 y 37 (3º y 4º). No están en orden. Intercambio.
45, 21, 37, 52, 49 → seguimos
45, 21, 37, 52, 49 → Comparar 52 y 49. (4º y 5º). No están en orden. Intercambio.
45, 21, 37, 49, 52 → Ya hemos terminado esta pasada.
45, 21, 37, 49, 52 → El 5º elemento ya está en su sitio.
16. BURBUJA.
2ª pasada: comparamos cada uno de los tres primeros (n-2) con los que le
siguen. No llegamos a hacer comparaciones que involucren al 5º elemento,
porque la primera pasada hizo que el mayor de todos los elementos ocupara la
última posición, con lo cual, sabemos que ese ya está en su sitio. Trabajaremos
sólo con los cuatro que quedan.
45, 21, 37, 49, 52 → Comparar 1º y 2º. No están en orden. Intercambio.
21, 45, 37, 49, 52 → seguimos
21, 45, 37, 49, 52 → Comparar 2º y 3º. No están en orden. Intercambio.
21, 37, 45, 49, 52 → seguimos
21, 37, 45, 49, 52 → Comparar 3º y 4º. Están en orden. Pasada terminada.
21, 37, 45, 49, 52 → El 4º elemento ya está en su sitio. (Fíjate en que el array
ya está en orden, pero algoritmicamente, eso no lo sabemos).
17. BURBUJA.
3ª pasada: Comparamos cada uno de los dos primeros (n-3) con los
siguientes.
21, 37, 45, 49, 52 → 1º y 2º. Están en orden. Seguimos.
21, 37, 45, 49, 52 → 2º y 3º. Están en orden. Pasada terminada.
21, 37, 45, 49, 52 → Ya tenemos tres en orden.
18. BURBUJA.
4ª y última pasada: Comparamos el primero con el segundo.
21, 37, 45, 49, 52 → 1º y 2º están en orden. Pasada terminada.
21, 37, 45, 49, 52 → Ya tenemos los cuatro últimos en orden.
21, 37, 45, 49, 52 → Así pues, el primero también lo está.
19. BURBUJA.
Algoritmo burbuja( A : array de n elementos indizados de 1 a n)
para i desde 1 hasta n-1 hacer: //las n-1 pasadas
para j desde 1 hasta n-i hacer: //el recorrido
si A[j] > A[j+1] entonces //Si no están en orden
intercambiar A[j] y A[j+1] //Se intercambian
fin para
fin para
fin algoritmo
20. BURBUJA.
Ventajas:
*Bastante sencillo y mas
utilizado por su fácil
comprensión y programación.
*Código reducido.
*Eficaz.
Desventajas:
*Es el método mas
ineficiente.
*Consume bastante
tiempo de
computadora.
*Requiere de muchas
lecturas / escrituras
en memoria.