Ordenamiento de arreglos I


Existen múltiples algoritmos de ordenamiento de datos que pueden ser aplicados a los datos contenidos en un arreglo, en este post veremos algunos de los algoritmos de ordenamiento más usuales.

Método de la burbuja

Este método esta basado en hacer múltiples recorridos a lo largo del arreglo, para comparar pares contiguos de datos que se intercambiarán entre si, con la finalidad de ir colocando cada número en la posición que le corresponde.

A continuación vemos un ejemplo de este método de ordenamiento:

Para que este método quede mas claro veremos su funcionamiento, el primer ciclo for, se usa para llenar el arreglo con los datos desordenados, y de ahí podemos observar dos ciclos anidados que corresponden al algoritmo de ordenamiento, en este método se requiere el empleo de estos dos ciclos for, el externo se repite tantas veces como elementos posea el arreglo, la razón de esto es para el caso extremo en que los elementos del arreglo estén en un orden totalmente inverso al deseado, el ciclo interno se encarga de recorrer el arreglo para generar los pares de números a comparar y llega hasta uno menos que la longitud del arreglo, esto se debe a que en la comparación (if) se puede observar que se emplea el elemento b+1, con lo que si llegara hasta el ultimo elemento el if saldría de la longitud del arreglo.

Ahora analicemos una breve demostración:

1.- Tomando los valores de la imagen de ejemplo, al entrar al método de ordenamiento tendríamos:

2.- El ciclo a comenzó en 0, el ciclo b comenzó en cero y llegamos a la primera ejecución del if y compararemos datos[b]  (que tiene el valor de 9) contra datos[b+1] (que tiene el valor de 6), por lo que la condición se cumple al ser 9 mayor que 6, ahora se copia el valor de datos[b] a la variable auxiliar

3.- A continuación copia el valor de datos[b+1] (que vale 6) a datos[b], con lo que se pierde el valor que tenia de 9, quedando:

4.- En este punto puede advertirse la utilidad de la variable auxiliar (aux) como respaldo del valor de la posición datos[b], con lo que ahora podemos copiar el valor de aux a la posición datos[b+1] para completar el intercambio de los valores.

6.- Ahora la comparación el if esta comparando datos[b] (con valor de 9) dado que «b» ahora vale 1, contra datos[b+1] (con valor de 4), al cumplirse la condición se vuelven a repetir los pasos del 2 al 4, produciendo:

———–

——————–

Como podemos ver el procedimiento se repetirá con cada numero desordenado, aunque la mayor critica a este método es que muchas veces aunque el arreglo ya se encuentre ordenado, los ciclos continúan ejecutándose sin producir ningún cambio en los valores almacenados.

1 Comments

¿Qué estas pensando?

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.