Algoritmos de ordenación - método de la burbuja

Muchas veces cuando estamos haciendo un programa nos puede interesar ordenar una lista de enteros de mayor a menor, o al revés. En todos los lenguajes de programación existen algoritmos de ordenación, y aquí voy a explicar uno de los mas conocidos y sencillo, el método de la burbuja. Tiene este nombre por que (en caso de orden ascendente) hace que el elemento menor de la lista "suba" como una burbuja hasta el principio del array.

El método de la burbuja es muy sencillo, consiste en coger los elementos de un array e ir comparándolos con sus adyacentes y si fuera necesario intercambiarlos, alterando así el orden de los mismos. Si queremos un orden ascendente el intercambio sucede cuando se da el caso en el que el elemento del array en el que nos hemos posicionado es mayor que el que tiene inmediatamente a su derecha. Veámoslo en la siguiente imagen:

En este ejemplo, hecho en C, podemos ver cómo se ordena un array de varios enteros:

#include <stdio.h>

int main(void) {

	/* Declaramos un array de enteros. */
	int vector[4] = { 3, 2, 4, 1 };

	/* Declaramos otras variables que
	 * nos serviran para iterar. */
	int i, j, aux;

	/* Ordenamos el array de enteros. */
	for (i = 0; i <= 2; i++) {
		for (j = 3; j >= i + 1; j--) {
			if (vector[j - 1] > vector[j]) {
				aux = vector[j];
				vector[j] = vector[j - 1];
				vector[j - 1] = aux;
			}
		}
	}

	/* Imprimimos el array de enteros. */
	for (i = 0; i <= 3; i++) {
		printf("%d ", vector[i]);
	}
}

Aunque este ejemplo esta hecho en C, realmente se se puede usar en prácticamente todos los lenguajes de programación tradicionales. ¡Pruébalo!

Quizás te pueda interesar ver este otro post donde explico el método de selección directa.