Beruflich Dokumente
Kultur Dokumente
Aqui el codigo en C:
#include<stdio.h>
int main ()
{
int aux,i,j,k;
int n=10,A[n];
}
for (k=0;k<n;k++)
{
printf(" %d",A[k]);
}
METODO DE BURBUJA Sabrina Lizeth Torres Delgado
return 0;
}
El método de ordenamiento de burbuja, es un algoritmo que se aplica para poder ordenar una cantidad de
datos ya sea de forma ascendente o descendente.
Es el algoritmo más fácil de implementar, pero a cambio pagamos un alto precio en procesamiento, ya que
este método evalúa los datos muchas veces y en ocasiones innecesariamente (como por ejemplo cuando son
iguales).
A estas alturas posiblemente ya tengas conocimiento de sencillos pasos para ordenar datos, como por
ejemplo, Determinar cuál es el mayor o menor de dos números, pues aplicando este método podremos
ordenar array, estructuras y cualquier tipo de dato NO atómico (es decir que se pueda dividir)
Este libro trata de programación en C, entonces a continuación nos aplicamos a esto:
Explicación
....
//DE MENOR A MAYOR (Ascendente)
#define Nelementos 4
....
for (i=1;i<Nelementos;i++)
{
for (j=0; j <= Nelementos-i ;j++) // for(j=0; j < Nelementos-i; j++) es menor y no
menor igual
{
if (lista[j] > lista[j+1])//Condición mayor-menor
{
temp=lista[j];
lista[j]=lista[j+1];
lista[j+1]=temp;
}
METODO DE BURBUJA Sabrina Lizeth Torres Delgado
}
}
//Para cambiar el modo de ordenamiento solo debemos cambiar la condición < ó >
De esta forma el ciclo se repite hasta que todos los datos se hallan movido. Como veras
hasta ahora solo hemos estado moviendo el 9. Tu lista se veria asi:
* ''Original:'' 6 '''9''' 3 1
:* ''1er Mov:'' 6 3 '''9''' 1
:* ''2do Mov:'' 6 3 1 '''9'''
Si bien ya esta mas ordenada que la original, aun falta bastante, pero recuerda que
estábamos en el primer ciclo del primer for (i).
En un principio, pensaba no presentarles las variaciones que hay de este algoritmo, pero
revisando en varios libros me percaté de que aunque es el mismo algoritmo y funciona de
la misma forma (con sus ventajas y desventajas), Creo que es preferible mostrárselos para
evitar confusiones y enredos innecesarios.
== Variantes ==
Aunque en realidad usa dos ciclos un while y un for, el while hace la función de nuestro
primer for. Sin embargo la demás implementaciones son técnicamente las mismas, solo que
en vez de usar una variable ya preparada (j en nuestro caso), este evalúa con la variable
i.
Variante: Restar
Esta es una de las más usuales que he visto en los libros, folletos y otros. Todo es igual, pero cambian las
condiciones, de esta forma se trabaja a la inversa de nuestro algoritmo.
Ejemplos
El algoritmo burbuja está preparado para correr con todo tipo de datos NO atómicos, es por esto que no
importa si el arreglo es de tipo char, int, float, etc. Funcionará con sus respectivas modificaciones.
El siguiente ejemplo ordenara una lista de tamaño 6, que esta ordenada. Recuerden como buena práctica:
#include <stdio.h>
#define TAM 6
int main()
{
for (i=0;i<TAM;i++)
printf("%3d",lista[i]); //impresión de la lista con espacio de 3 lineas (%3d)
for (i=1;i<TAM;i++)
{
for (j=0;j<TAM-1;j++)
{
if (lista[j] > lista[j+1]) //condicion
{
temp = lista[j]; //temp guarda momentáneamente el valor de
lista[j]
lista[j]=lista[j+1]; //Asigno al la posicion lista[j], lo que hay
en lista[j+1]
lista[j+1]=temp; //obtendra un nuevo valor por parte de temp.
}
}
return 0;
}