ORDENACIÓN POR EL MÉTODO DE LA BURBUJA

    Este método consiste en acomodar el vector moviendo el mayor hasta la última casilla comenzando desde la casilla cero del vector hasta haber acomodado el número más grande el la última posición, una vez acomodado el más grande, prosigue a encontrar  y acomodar el siguiente más 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 más grande, éste vuelve a comparar las ya ordenadas. A pesar de ser el algoritmo de ordenamiento más deficiente que hay, éste es el más usado en todos los lenguajes de programación.

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

Algoritmo:                                               Complejidad

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

           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 número 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:

 

Variables

Vector

pos

0

1

2

3

4

5

6

7

i

j

a[j]

a[j+1]

inicio

44

55

12

42

94

18

6

67

0

1

55

12

cambio

44

12

55

42

94

18

6

67

0

2

55

42

cambio

44

12

42

55

94

18

6

67

0

4

94

18

cambio

44

12

42

55

18

94

6

67

0

5

94

6

cambio

44

12

42

55

18

6

94

67

0

6

94

67

cambio

44

12

42

55

18

6

67

94

1

0

44

12

cambio

12

44

42

55

18

6

67

94

1

1

44

42

cambio

12

42

44

55

18

6

67

94

1

3

55

18

cambio

2

42

44

18

55

6

67

94

1

4

55

6

cambio

12

42

44

18

6

55

67

94

2

2

44

18

cambio

12

42

18

44

6

55

67

94

2

3

44

6

cambio

12

42

18

6

44

55

67

94

3

1

42

18

cambio

12

18

42

6

44

55

67

94

3

2

42

6

cambio

12

18

6

42

44

55

67

94

4

1

18

6

cambio

12

6

18

42

44

55

67

94

5

0

12

6

ordenado

6

12

18

42

44

55

67

94

 


Si quiere bajar este programa haga click aqui
Si quiere bajar el código fuente haga click aqui