Ordenamiento Por Burbujas

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA

CENTRO UNIVERSITARIO DE OCCIDENTE CUNOC-USAC


DIVISIÓN DE CIENCIAS DE LA INGENIERÍA
PROGRAMACIÓN DE COMPUTADORAS 2
ING. JUAN JOSÉ GODÍNEZ

ORDENAMIENTO POR BURBUJAS

EDGAR DAVID SAY IXCOT 201530405

QUETZALTENANGO 8 DE MAYO DE 2020


INTRODUCCION

Un ordenamiento es la operación de arreglar los registros de una tabla en algún orden


secuencial de acuerdo a un criterio de ordenamiento, tiene como propósito principal
facilitar las búsquedas de los miembros del conjunto ordenado, el ordenar un grupos de
datos significa mover los datos o sus referencias para que queden en una secuencia tal que
represente un orden, el cual puede ser numérico, alfabético o incluso alfanumérico
ascendente o descendente.

La técnica utilizada a continuación se denomina ordenación por burbuja u ordenación por


hundimiento debido a que los valores más pequeños «burbujean» gradualmente (suben)
hacia la cima o parte superior del array de modo similar a como suben las burbujas en el
agua, mientras que los valores mayores se hunden en la parte inferior del array. La técnica
consiste en hacer varias pasadas a través del array. En cada pasada, se comparan parejas
sucesivas de elementos. Si una pareja está en orden creciente (o los valores son idénticos),
se dejan los valores como están. Si una pareja está en orden decreciente, sus valores se
intercambian en el array.
Método de la burbuja

Se basa en recorrer el array ("realizar una pasada") un cierto número de veces, comparando
pares de valores que ocupan posiciones adyacentes (0-1,1-2,...). Si ambos datos no están
ordenados, se intercambian. Esta operación se repite n-1 veces, siendo n el tamaño del
conjunto de datos de entrada. Al final de la última pasada el elemento mayor estará en la
última posición; en la segunda, el segundo elemento llegará a la penúltima, y así
sucesivamente.

Metodología de la programación (I)


Su nombre se debe a que el elemento cuyo valor es mayor sube a la posición final del array,
al igual que las burbujas de aire en un depósito suben a la parte superior. Para ello debe
realizar un recorrido paso a paso desde su posición inicial hasta la posición final del array.
Veamos un ejemplo:
4065770297

Metodología de la programación (I)


0456702779
0456027779
0450267779
0402567779
0024567779
0024567779
0024567779
0024567779
0024567779

La complejidad computacional de éste algoritmo O (TAM2).

Burbuja mejorada
Existe una forma muy obvia para mejorar el algoritmo de la burbuja. Basta con tener en
cuenta la posibilidad de que el conjunto esté ordenado en algún paso intermedio. Si el bucle
interno no necesita realizar ningún intercambio en alguna pasada, el conjunto estará ya
ordenado.
Veamos el mismo ejemplo que el caso anterior procesado mediante el algoritmo mejorado:

4065770297
0456702779
0456027779
0450267779
0402567779
0024567779
0024567779

En el mejor caso (si ya está ordenado) realiza TAM-1 comparaciones. En el peor caso (el
elemento menor estaba situado al fin del array) se necesitan las mismas pasadas que antes y
el orden es TAM2. En el caso medio el orden es proporcional a TAM2/2. Obsérvese que
éste algoritmo tiene una complejidad computacional en el peor caso igual al de la burbuja
simple, aunque en término medio es aproximadamente dos veces más eficiente (requiere la
mitad de tiempo para ejecutarse).

Método de selección
Este método considera que el array está formado por 2 partes: una parte ordenada (la
izquierda) que estará vacía al principio y al final comprende todo el array; y una parte
desordenada (la derecha) que al principio comprende todo el array y al final estará vacía.
El algoritmo toma elementos de la parte derecha y los coloca en la parte izquierda;

Metodología de la programación (I)

Empieza por el menor elemento de la parte desordenada y lo intercambia con el que ocupa
su posición en la parte ordenada. Así, en la la primera iteración se busca el menor elemento
y se intercambia con el que ocupa la posición 0; en la segunda, se busca el menor elemento
entre la posición 1 y el final y se intercambia con el elemento en la posición 1.
De esta manera las dos primeras posiciones del array están ordenadas y contienen los dos
elementos menores dentro del array. Este proceso continúa hasta ordenar todos los
elementos del array.
En cada pasada se coloca un elemento en su lugar, y la variable e marca donde empezar la
búsqueda en la parte desordenada, que será secuencial si no tenemos más información. La
búsqueda del siguiente elemento menor comienza suponiendo que dicho elemento es e. Se
comprueba la hipótesis comparándolo con cada uno de los restantes. Si se encuentra uno
menor, se intercambia.

Veamos un ejemplo de la ejecución de éste algoritmo:


El número de comparaciones que realiza este algoritmo es independiente de la ordenación
inicial. El bucle interno hace TAM-1 comparaciones la primera vez, TAM-2 la segunda,...,
y 1 la última. El bucle externo hace TAM-1 búsquedas. El total de comparaciones es
(TAM2-TAM)/2. Por tanto el orden de complejidad es cuadrático (O(TAM2)).

Pseudocódigo en C

APLICACIÓN DEL METODO DE BURBUJAS

Ordenar números ascendentes y descendientes

//Metodo Burbuja

#include<iostream>
#include<conio.h>

using namespace std;


int main(){
int array[5] = {2,3,1,5,4};
int i,j,aux;

for(i=0;i<5;i++){
for(j=0;j<4;j++){
if(array[j] > array[j+1]){
aux = array[j];
array[j] = array[j+1];
array[j+1] = aux;
}
}
}

cout<<"Numeros de forma Ascendente: ";


for(i=0;i<5;i++){
cout<<array[i]<<" ";
}

cout<<"\nNumeros de forma Descendente: ";


for(i=4;i>=0;i--){
cout<<array[i]<<" ";
}

getch();
return 0;
}
Conclusión

Concluyo que es un sencillo algoritmo de ordenamiento que 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
necesiten más intercambios, lo cual significa que la lista esta ordenada

También podría gustarte