Ordenacion por burbuja en C#

Jun 27, 2008 Codigos C# 7 comentarios

bubble sort animation1 Ordenacion por burbuja en C#Este método consiste en ir comparando cada par de elementos del array e ir moviendo el mayor elemento hasta la última posición, comenzando desde la posición cero. Una vez acomodado el mayor elemento, prosigue a encontrar y acomodar el segundo más grande comparando de nuevo los elementos desde el inicio de la lista, y así sigue hasta ordenar todos los elementos del arreglo. Al ser necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, hace que el ordenamiento por burbuja sea uno de los algoritmos más ineficientes que existen. Incluso entre los algoritmos de ordenamiento del mismo orden, otros como el “Ordenamiento por inserción” son considerados más eficientes. Y lo más curioso es que este procedimiento es uno de los más usados para ordenar listas en todos los lenguajes de programación.

Estos serían los pasos a seguir por este algoritmo para ordenar una lista a1, a2, a3, … an
1) Comparar a1 con a2 e intercambiarlos si a1>a2
2) Seguir hasta que se haya comparado an-1 con an
3) Repetir el proceso anterior n-1 veces

Sin más, este es el método escrito en C# que recibe como parámetro un array de números enteros. Traté de escribir el método lo más legible posible para que lo entendieran. Si tienes alguna pregunta deja un comentario.


public static void OrdenacionBurbuja(int[] arrDesordenado)
{
bool hubo_cambio;
int temp,k=0;
int pos = arrDesordenado.Length-1; //Guarda en pos la longitud del array
do
{
hubo_cambio = false;
for(int i=0; i<pos; i++)
//Comparo los valores a ver si el proximo es mayor que el
if(arrDesordenado[i]>arrDesordenado[i+1])
{

//En caso de ser mayor los intercambio
temp = arrDesordenado[i];
arrDesordenado[i] = arrDesordenado[i+1];
arrDesordenado[i+1] = temp;
hubo_cambio = true;
k=i;
}
//actualizo la posicion
pos = k;
}
while(hubo_cambio);
}

Compartir:

Relacionados

algunos artículos que te pueden interesar

7 comentarios

Forma parte de nuestra discusión y síguela de cerca

Es excelente este portal muy educativo y explicito para personas como yo, que comienzan el el mundo de la programación.
Muy bueno su trabajo

Autor: regnad | Fecha: Jul 8, 2009.

de verdad un gran trabajo..tambien me estoy iniciando en programacion y se agradece esta ayuda k aportas, tus conocimientos son de reconocer sigue asi.

Autor: royer flores | Fecha: Sep 8, 2009.

exelente blog..
especialmente lo que buscaba!!!
gracias

Autor: I.T. gerardo | Fecha: Jun 11, 2010.

si en ves de un arreglo de nuemros seria un arreglo de letras como seria el codigo??

Autor: edwin_^^ | Fecha: Jul 26, 2010.

Edwin, lo primero es que este método funciona para cualquier tipo de dato que se pueda ordenar, si quieres ordenar las letras por orden alfabético por ejemplo, como hay un número finito de caracteres (255), entonces puedes asignar a cada letra un número, a través de una función cualquiera y luego ordenarlos usando exactamente este método. Pero en general, puedes hacer tu propio método de Comparación entre dos objetos o tipos de datos cualquieras, redefiniendo el método
CompareTo (object x, object y)

Autor: Tomy | Fecha: Jul 29, 2010.

nnm mm,,

Autor: mmnn | Fecha: Sep 5, 2010.

Como lo ordenarías sin usar CompareTo (object x, object y), y
sin modificar el código dentro del método burbuja, para que lo ordene alfabéticamente..?

Autor: Adrian | Fecha: Oct 3, 2014.

Escribe tu comentario

Requerido.

Requerido. No público.

Si tienes alguno.