domingo, 21 de enero de 2007

Algoritmo de ordenamiento Burbuja en Java y C#

Ordenamiento Burbuja o Bubble Sort es un algoritmo para ordenar arreglos o listas de menor a mayor, conocido por la mayoría de los programadores.

Consiste en recorrer la lista las veces que sea necesario e ir comparando los elementos de a dos e intercambiándolos si fuera necesario para ordenarlos.

La condición a seguir seria:

Si(arreglo[i]>arreglo[i+1]) entonces
Variable Temporal=arreglo[i]
arreglo[i]=arreglo[i+1]
arreglo[i+1]=Variable Temporal

Y luego se incrementaría ya fuera de la condición el índice [i] en 1, bastaría con un i++. Un ejemplo básico seria una lista así:

Arreglo original: [5,4,8,7,6,3]

Primera pasada: [4,5,7,3,6,8]
Segunda pasada: [4,5,3,6,7,8]
Tercera pasada: [4,3,5,6,7,8]
Cuarta pasada: [3,4,5,6,7,8]

Asi en cuatro recorridos haciendo las comparaciones este metodo ordeno el arreglo.

Este es un ejemplo del metodo escrito en Java:

public static void burbuja(int [] ordenar) //recibe como parametro el arreglo desordenado
{
for (int i=1; i<ordenar.length;i++) //este for recorre el arreglo tantas veces como sea su tamaño.
{
for(int j=0;j<ordenar.length-1;j++) // este for recorre el arreglo y repite la condicion.
{
if (ordenar[j] > ordenar[j+1]) // compara los elementos en los indices [j] y [j+1]
{
int temp = ordenar[j]; // si el valor del indice [j] es mayor al de [j+1] los intercambia
ordenar[j]= ordenar[j+1];
ordenar[j+1]= temp;
}
}
}
}

Escrito en C#:

public static void burbuja(int[] ordenar) //recibe como parametro el arreglo desordenado
{
for (int i = 1; i < ordenar.Length; i++) //este for recorre el arreglo tantas veces como sea su tamaño.
{
for (int j = 0; j < ordenar.Length - 1; j++) // este for recorre el arreglo y repite la condicion.
{
if (ordenar[j] > ordenar[j + 1]) // compara los elementos en los indices [j] y [j+1]
{
int temp = ordenar[j]; // si el valor del indice [j] es mayor al de [j+1] los intercambia
ordenar[j] = ordenar[j + 1];
ordenar[j + 1] = temp;
}
}
}
}

Son códigos bastante similares ya que Java y C# utilizan casi la misma sintaxis, lo único que cambia en entre ambos es el método length en Java length y en C# Length. Tambien podría implementarse burbuja en c# utilizando foreach.

Con esto concluimos este articulo, saludos desde TecnoTutoriales.

No hay comentarios: