F1 Help! La solución que buscabas

Desarrollo, programación, tips, consejos y soluciones para los usarios de PC

sábado, 30 de enero de 2010

Ordenamiento de Burbuja - Bubble Sort

El Ordenamiento 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.

Este es una implementacion en C:

typedef int element;

void intercambio(element *a, int i, int j)
{
element p;
p = a[i];
a[i] = a[j];
a[j] = p;
return;
}

void bubblesort(element *a, int n)
{
int i,j;
for(i=n-1;i>=0;i--)
for(j=0;j a[j+1]) {
intercambio(a,j,j+1);
}
}
return;
}





En este ejemplo suponemos que estamos ordenando numeros. Pero definimos un nuevo tipo "element" como int (entero) para diferenciar lo que seria elemento con un variable entera comun.

La idea del ordenamiento Burbuja es simple. Mientras que vamos recorriendo la lista, intercambiamos si el de la derecha es menor al de la izquierda. De esta forma al pasar una vez por todo la lista el mayor de todo quedara al final. Asi recorremos nuevamente la lista para mandar el segundo mas grande al fondo. Esto procedimiento debemos realizarlo el numero de elementos que tenga la lista.

La funcion bubblesort toma dos argumento. El primero un puntero a la lista de elementos a ordenar. El segundo el tañaño de la lista.

La funcion intercambio, toma un puntero a la lista y dos indices. E intercambia estos dos valores.

No hay comentarios: