Bubble Sort (Intercambio directo)

El método de intercambio directo, conocido coloquialmente con el nombre de la burbuja, es el más utilizado por los estudiantes principiantes de computación, por su fácil comprensión y programación. Pero es preciso señalar que es probablemente el método más ineficiente (Para eficientes tenemos el Ordenamiento Rápido).

El método de intercambio directo puede trabajar de dos maneras diferentes.

  1. llevando los elementos más pequeños hacia la parte izquierda del arreglo.
  2. llevando los elementos más grandes hacia la parte derecha del mismo.

La idea básica de este algoritmo consiste en comparar pares de elementos adyacentes e intercambiarlos entre sí hasta que todos se encuentren ordenados. Se realizan N-1 pasadas, transportando en cada una de las mismas el menor o mayor elemento (Según sea el caso) su posición ideal. Al final de las N-1 pasadas los elementos del arreglo estarán ordenados.

la siguiente, es una implementación en Pseudocódigo, donde A es un arreglo de N elementos

BURBUJA(A,N)
{I, J y AUX son variables de tipo entero}
1. Repetir con I desde 2 hasta N
       1.1 Repetir con J desde N hasta I
              1.1.1 Si A[J-1] > A[J] entonces
                     Hacer AUX ? A[J-1]
                     A[J-1] ? A[J]
                     A[J] ? AUX
              1.1.2 {Fin del condicional del paso 1.1.1}
       1.2 {Fin del ciclo del paso 1.1}
2. {Fin del ciclo del paso 1}
Implementación en PHP.
function burbuja($A){
		$N = count($A)-1;
		for($i=1;$i < = $N;$i++)
			for($j=$N;$j>=$i;$j--)
				if($A[$j-1]>$A[$j]){
						$aux = $A[$j-1];
						$A[$j-1] = $A[$j];
						$A[$j] = $aux;
					}
		return $A;
	}

Comentarios

2006-12-20 10:27:46
Daniel Munoz Honiball
Muy buena la explicacio, y para modo de aprendizaje es importante verla. Sin embargo es igual de importante saber que existen otros algoritmos muchisimo mas eficientes, como el QuickSort. El QuickSort trabaja con la idea de: divides y venceras.

Esta muy bueno el blog, tiene mucho material y muy completo!
2006-12-20 17:11:44
Victor
Gracias :-)
2006-12-27 03:29:10
Mis Algoritmos
Ordenamiento Rápido (Quicksort)

El ordenamiento rápido (quicksort en inglés) es un algoritmo basado en la técnica de divide y vencerás, que permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n. Esta es la técnica de ordenamiento más rápida conocida. Fu...
2007-04-18 15:30:20
yeison
lo que sucede es que hay explicaciones para cualquier clase de lenguajes de programacion pero no para diagramas de flujo cuyo lenguaje es el dfd
2007-07-15 11:47:28
jhon
mm muy bueno pero porq no pones alguna idea tuya ... deja de copiar lo q esta escrito en el libro de "Estructuras de datos" - "Cairó Guardati"