Algoritmos Ordenación

Muchas Actividades Humanas requieren de diferentes colecciones de elementos salarios, calificaciones, inventarios, ventas, rentas, correos, cuentas de tarjetas de crédito, apellidos, teléfonos, etc. Para ser utilizados es necesario ponerlos en un orden específico para localizar de manera más eficiente la información.

Por todo ello una de las tareas que realiza más frecuentemente una computadora en el procesamiento de datos es la ordenación.

Existen diferentes tipos de Algoritmos de ordenación Básicos, los más simples y clásicos son los siguientes:

      • Ordenación por intercambio

      • Ordenación por selección

      • Ordenación por inserción

Los más recomendados son Ordenación por selección e inserción, el de intercambio (también conocido como burbuja) es el más sencillo pero el más ineficiente. Los datos se pueden almacenar en la memoria central o en archivos de datos externos discos, cintas DVD, etc. Los datos se almacenan en listas y en pequeñas cantidades se almacenen en arreglos y registros.

ORDENACIÓN POR INTERCAMBIO

El algoritmo se basa en la lectura sucesiva de la lista a ordenar, comparando al elemento inferior de la lista con los restantes y efectuando el intercambio de posiciones cuando el orden resultante de la comparación no sea el correcto.

Ej.

Tengo una lista de números 8, 4, 6, 2, la cuál tiene que convertirse al ordenarla en 2, 4, 6, 8, el algoritmo realiza n-1 pasadas, en este caso serían 3

Pasada 0

El elemento de índice 0, se compara con cada elemento posterior de la lista de índices 1, 2 y 3. En cada comparación se comprueba si el elemento siguiente es más pequeño que el elemento de índice 0, de ser así los ementos se intercambian. Después de realizar todas las comparaciones el elemento más pequeño se localiza en el índice 0.

Pasada 1

El elemento más pequeño se encuentra en el índice 0, entonces vamos a comparar al elemento del índice 1 con los elementos de los restantes posiciones 2 y3. En cada comparación si el elemento del índice 1 es mayor que los otros intercambian posición, así al terminar el segundo elemento más pequeño de la lista se va a almacenar en la posición 1

Pasada 2

Han quedado acomodados los dos primeros valores de lo índices 0 y 1, por lo que ahora solo resta valorar a los dos restantes el índice 2 y 3 resultando lo siguiente:

Para realizar el intercambio de posiciones debemos utilizar ciclos anidados, sugerimos utilizar el ciclo for e ir comparando mediante un if si el valor inicial del arreglo es mayor que el valor de cada índice a evaluar.

Elabora un programa que ordene una lista de 10 elementos desordenados, introducidos por el usuario dentro de un arreglo, los imprima, los ordene por intercambio y los vuelva a imprimir una vez ordenados.

Ordenación por intercambio

ORDENACIÓN POR SELECCIÓN

Consideremos ordenar de manera ascendente un arreglo de enteros, suponemos que son n números. El algoritmo se trata en sucesivas pasadas que intercambian al elemento más pequeño sucesivamente con el primer elemento de la lista, después con el segundo, posteriormente con el tercero, así sucesivamente hasta completar el ordenamiento.

Ejemplo:

Código 1

ORDENACIÓN POR INSERCIÓN

Este ordenamiento parte del principio de que el primer elemento está ordenado y sucesivamente se van colocando los miembros en la posición adecuada de acuerdo a que pueden ir antes o después del primer miembro.

Para ser más claros, supongamos que tenemos tarjetas con nombres los cuales queremos ordenar de forma alfabética, tomamos la primer tarjeta, la tarjeta dos y la comparamos con la primera, entonces decidimos si va antes o después de la primera. Una vez colocadas ambas tarjetas, seguimos con la tercera, la cual comparamos con la primera y decidimos si va antes o después de la primera, si va después entonces tendremos que comparar con la segunda tarjeta, por lo que podrá ir enmedio de las tarjetas o al final de las dos primeras.

Ejemplo:

Ejercicio:

Elabora los códigos que realizan estas tres maneras diferentes de ordenar. Selección, inserción e intercambio, comentalos y publicalos en tu sitio Web

virj