Está en la página 1de 8

ORDENACIN POR EL MTODO DE LA BURBUJA

Este mtodo consiste en acomodar el vector moviendo el mayor hasta la ltima


casilla comenzando desde la casilla cero del vector hasta haber acomodado el nmero
ms grande el la ltima posicin, una vez acomodado el ms grande, prosigue a
encontrar y acomodar el siguiente ms grande comparando de nuevo los numeros
desde el inicio del vector, y as sigue hasta ordenar todo los elementos el arreglo. Este
algoritmo es muy deficiente ya que al ir comparando las casillas para buscar el
siguiente ms grande, ste vuelve a comparar las ya ordenadas. A pesar de ser el
algoritmo de ordenamiento ms deficiente que hay, ste es el ms usado en todos los
lenguajes de programacin.

Entonces:
Dado un vector a1, a2, a3, ... an
1) Comparar a1 con a2 e intercambiarlos si a1>a2 (o
a1<a2)
2) Seguir hasta que todo se haya comparado an-1 con an
3) Repetir el proceso anterior n-1 veces</a
Algoritmo:

Complejidad
2
T(n )

for(i=0; i < n-1; i++){


for(j=0; j < n-1; j++){

T(n)

if(vec[j] > vec[j+1]){

T(1)

aux=vec[j];

T(1)

vec[j]=vec[j+1];

T(1)

vec[j+1]=aux;}

T(1)
}

}
El procedimiento de la burbuja es el siguiente:
Ir comparando desde la casilla 0 numero tras nmero hasta encontrar uno
mayor, si este es realmente el mayor de todo el vector se llevar hasta la ltima
casilla, si no es as, ser reemplazado por uno mayor que l.
Este procedimiento seguir as hasta que halla ordenado todas las casillas del
vector.
Una de las deficiencias del algoritmo es que ya cuando a ordenado parte del
vector vuelve a compararlo cuando esto ya no es necesario.
Ejemplo:

Vector
Variables
pos

a[j] a[j+1]

inicio

44

55

12

42

94

18

67

55 12

cambio

44

12

55

42

94

18

67

55 42

cambio

44

12

42

55

94

18

67

94 18

cambio

44

12

42

55

18

94

67

94 6

cambio

44

12

42

55

18

94

67

94 67

cambio

44

12

42

55

18

67

94

44 12

cambio

12

44

42

55

18

67

94

44 42

cambio

12

42

44

55

18

67

94

55 18

cambio

42

44

18

55

67

94

55 6

cambio

12

42

44

18

55

67

94

44 18

cambio

12

42

18

44

55

67

94

44 6

cambio

12

42

18

44

55

67

94

42 18

cambio

12

18

42

44

55

67

94

42 6

cambio

12

18

42

44

55

67

94

18 6

cambio

12

18

42

44

55

67

94

12 6

ordenado 6

12

18

42

44

55

67

94

ORDENAMIENTO BURBUJA
Descripcin
Una manera simple de expresar el ordenamiento de burbuja en pseudocdigo es la
siguiente:

Este algoritmo realiza el ordenamiento o reordenamiento de una lista a de n valores,


en este caso de n trminos numerados del 0 al n-1, consta de dos bucles anidados
uno con el ndice i, que da un tamao menor al recorrido de la burbuja en sentido
inverso de 2 a n, y un segundo bucle con el ndice j, con un recorrido desde 0 hasta ni, para cada iteracin del primer bucle, que indica el lugar de la burbuja.
La burbuja son dos trminos de la lista seguidos, j y j+1, que se comparan, si el
primero es menor que el segundo sus valores se intercambian.
Esta comparacin se repite en el centro de los dos bucles, dando lugar a la postre a
una lista ordenada, puede verse que el nmero de repeticiones sola depende de n, y
no del orden de los trminos, esto es, si pasamos al algoritmo una lista ya ordenada,
realizara todas las comparaciones exactamente igual que para una lista no ordenada,
esta es una caracterstica de este algoritmo, luego veremos una variante que evita
este inconveniente.
Para comprender el funcionamiento, veamos un ejemplo sencillo:

Tenemos una lista de nmeros que hay que ordenar:

Podemos ver que la lista que tiene cinco trminos, luego:

El ndice i har un recorrido de 2 hasta n:

Que en este caso ser de 2 a 5. Para cada uno de los valores de i, j tomara
sucesivamente los valores de 0 hasta n-i:

Para cada valor de j, obtenido en ese orden, se compara el valor del ndice j con el
siguiente:

Si el termino j es mayor que el termino j+1, los valores se permutan, en caso contrario
se contina con la iteracin.
Para el caso del ejemplo, tenemos que:

Para la primera iteracin del primer bucle:

y j tomara los valores de 0 hasta 3:

Cuando j vale 0, se comparan


el orden.

, el 55 y el 86, dado que 55 < 86 no se permutan

Ahora j vale 1 y se comparan


lugar a una nueva lista.

el 86 y el 48 Como 86 > 48, se permutan, dando

Se repite el proceso hasta que j valga 3, dando lugar a una lista parcialmente
ordenada, podemos ver que el termino de mayor valor esta en el lugar ms alto.

Ahora i vale 3, y j har un recorrido de 0 a 2.


Primero j vale 0, se comparan
lugar a la nueva lista.

, el 55 y el 48, como 55 > 48 se permutan dando

Para j = 1 se compara el 55 con el 16 y se cambian de orden.


Para j = 2 se compara el 55 y el 82 y se dejan como estn, finalizando el bucle con
una lista mejor ordenada, puede verse que los dos valores ms altos ya ocupan su
lugar. No se ha realizado ninguna comparacin con el termino cuarto, dado que ya se
sabe que despus del primer ciclo es el mayor de la lista.
El algoritmo consiste en comparaciones sucesivas de dos trminos consecutivos

ascendiendo de abajo a arriba en cada iteracin, como la ascensin de las burbujas de


aire en el agua, de ah el nombre del procedimiento. En la primera iteracin el
recorrido ha sido completo, en el segundo se ha dejado l ltimo trmino, al tener ya el
mayor de los valores, en los sucesivos s ira dejando de realizar las ltimas
comparaciones, como se puede ver.
Ahora ya i vale 4 y j recorrer los valores de 0 a 1.
Cuando j vale 0, se comparan
esto es el 48 y el 16 dado que 48 es mayor que
16 se permutan los valores, dando lugar a una lista algo ms ordenada que la anterior,
desde esta nueva ordenacin, j pasa a valer 1, con lo que se comparan los trminos
el 48 y el 55 que quedan en el mismo orden.
En este caso la burbuja ha ascendido menos que en los casos anteriores, y la lista
esta ya ordenada, pero el algoritmo tendr que completarse, realizando una ltima
iteracin.

Hay que tener en cuenta que el bucle realiza un nmero fijo de repeticiones y para

finalizar tendrn que completarse, aun en el caso extremo, de que la lista estuviera
previamente ordenada.
Por ltimo i vale 5 y j solo puede vale 0, con lo que solo se realizara una comparacin
de
el 16 y el 48, que ya estn ordenados y se dejan igual.
Los bucles finalizan y tambin el procedimiento, dejando la lista ordenada.
Una variante que finaliza en caso de que la lista est ordenada, puede ser la siguiente:
como en el ejemplo anterior, empleando un centinela ordenado, que detecta que no
se ha modificado la lista en un recorrido de la burbuja, y que por tanto la lista ya est
ordenada, finalizando.

También podría gustarte