Algoritmos de ordenación y análisis de eficiencia

La importancia de los algoritmos de ordenación no se discute.

¡Tienen gran importancia dentro de la Ciencia de la Computación!, dado que una buena cantidad de los procesos realizados por medios computacionales requieren que sus datos estén ordenados.

Por lo tanto, en este post quiero compartir un material que resume diversos métodos de ordenación (estudiados ampliamente) y el análisis de su complejidad, tema clave para los programadores que aspiran transitar hacia las “grandes ligas”.

Dado un conjunto de n elementos a1, a2,..., an y una relación de orden total (≤) sobre ellos, el problema de la ordenación consiste en encontrar una permutación de esos elementos ordenada de forma creciente.

Aunque tanto el tipo y tamaño de los elementos como la “estructura” y el dispositivo en donde se encuentran almacenados puede influir en el método que utilicemos para ordenarlos, a efectos de la explicación que presenta el material compartido, simplemente, se utiliza un vector (arreglo simple, unidimensional) de números enteros. 

Const n =…; (* número máximo de elementos *)
Type a = Array [1..n] of integer;

Los métodos para los que encontrarás algoritmos y el análisis de su complejidad son los siguientes:

  • Ordenación por Inserción
  • Ordenación por Selección
  • Ordenación Burbuja
  • Ordenación por Mezcla (Mergesort)
  • Ordenación mediante Montículos (Heapsort)
  • Ordenación Rápida de Hoare (Quicksort)
  • Ordenación por Incrementos (Shellsort)
  • Otros algoritmos de ordenación:
    • Ordenación por Cubetas (Binsort)
    • Ordenación por Residuos (Radix)
El aprendizaje que se logra con el estudio y la solución a los problemas que proponen es, sencillamente, relevante. Así que no se pierdan este material: Descargar (46 páginas). 

Post relacionados: 

Con más vistas en el último mes

Diferencias entre "proceso", "actividad" y "tarea"

Importancia de la música para los niños…

¿Ya estás utilizando las alertas de Google académico?