Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos de Ordenamiento
En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que
pone elementos de una lista o un vector en una secuencia dada por una relación de
orden, es decir, el resultado de salida ha de ser una permutación —o
reordenamiento— de la entrada que satisfaga la relación de orden dada. Las
relaciones de orden más usadas son el orden numérico y el orden lexicográfico.
Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos
(como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución
rápida. También es útil para poner datos en forma canónica y para generar
resultados legibles por humanos (Wikipedia, 2022).
• Ordenamiento Burbuja (Bubble Sort): Este ordenamiento funciona
comparando cada elemento del vector con el elemento que viene a
continuación, si este está mal ordenado los cambia de posición (Koketxt,
2023).
Complejidad Computacional
Para considerar la complejidad de un algoritmo se evalúa su rendimiento bajo los
siguientes escenarios: peor caso, caso promedio y mejor caso). En términos de n,
el tamaño de la lista o arreglo. Para esto se usa el concepto de orden de una función
y se usa la notación O(n). El mejor comportamiento para ordenar (si no se
aprovecha la estructura de las claves) es O(n log n). Los algoritmos más simples
son cuadráticos, es decir O(n²).
Tabla 1. Complejidad de algunos algoritmos de ordenamiento. Tomado y adaptado
de Wikipedia.
Nombre Nombre Complejidad Uso de Método de
Traducido Original Memoria Ordenamiento
Ordenamiento Bubblesort O(n²) O(1) Intercambio
de Burbuja
Ordenamiento Selection O(n²) O(1) Selección
por Selección Sort
Ordenamiento Merge Sort O(n log n) O(n) Mezcle
por Mezcla
Ordenamiento Quicksort Promedio: O(n log n), O(log n) Partición
Rápido Peor caso: O(n²)
Figura 02. Número de comparaciones por cada algoritmo con 100 datos ingresados.
Fuente: Elaboración propia (Python versión 3.8.3).
5
Figura 03. Número de intercambios realizados por cada algoritmo con 100 datos
ingresados. Fuente: Elaboración propia (Python versión 3.8.3).
Figura 05. Número de comparaciones por cada algoritmo con 1000 datos
ingresados. Fuente: Elaboración propia (Python versión 3.8.3).
6
Figura 06. Número de intercambios por cada algoritmo con 1000 datos ingresados.
Fuente: Elaboración propia (Python versión 3.8.3)
Figura 08. Número de comparaciones por cada algoritmo con 10000 datos
ingresados. Fuente: Elaboración propia (Python versión 3.8.3).
Figura 09. Número de intercambios por cada algoritmo con 10000 datos ingresados.
Fuente: Elaboración propia (Python versión 3.8.3)
8
Conclusiones
• Para que un algoritmo de ordenación sea el más rápido para cualquier
conjunto de datos a ordenar, debe ser consciente tanto de la jerarquía de
memoria de la máquina, como del tipo, cantidad y características de los datos
a ordenar.
• La velocidad en el tiempo de respuesta (ordenamiento de los datos
ingresados) suele ser menor si el algoritmo empleado hace uso de
recursividad, de manera especifica para la comparación realizada en el
presente documento el algoritmo más eficiente para el ordenamiento de los
datos ingresados fue Quicksort.
• Los algoritmos de ordenamiento de datos son muy útiles, ya que la forma de
arreglar los registros de una tabla en algún orden secuencial de acuerdo a
un criterio de ordenamiento; facilita las búsquedas de cantidades de datos en
un moderado tiempo, en un modelo de eficiencia.
Bibliografía