Ordenamientos

Ordenar en el contexto de la programación y los algoritmos se refiere al proceso de reorganizar un conjunto de elementos en un orden específico. Los elementos pueden ser números, letras, objetos o cualquier otro dato. El propósito principal de ordenar es crear un criterio que determine la posición relativa de cada elemento en la secuencia ordenada. Esto facilita la búsqueda, comparación y procesamiento de datos.

Ordenamiento Burbuja:

Año de creación: 1956

Autor: Juan W. J Williams

Tiempo de ejecución: O(n^2) peor de los casos

Eficiencia: este algoritmo no es muy eficiente para grandes conjuntos de datos debido a su complejidad cuadrática. Funciones de lista: este algoritmo es adecuado para listas pequeñas porque comercia mucho. La lista se ejecuta varias veces hasta que se ordena por completo. Sitio web: https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/programacion-iv/2019/ii/guia-3.pdf">

Ordenamiento Selección:

Año de creación: 1955

Autor: John von Neumann

Tiempo de ejecución: O(n^2) peor de los casos

Eficiencia: este algoritmo no es muy eficiente para grandes conjuntos de datos debido a su complejidad cuadrática. Funciones de lista: este algoritmo es adecuado para listas pequeñas y es fácil de entender e implementar. La lista se ejecuta repetidamente hasta que se ordena por completo. Sitio web: https://programacionpython.ecyt.unsam.edu.ar/material/12_Ordenamiento/02_Ordenamiento_sencillo/">

Ordenamiento Instalación:

Año de creación: 1951

Autor: Konrad Zuse

Tiempo de ejecución: O(n^2) peor de los casos

Eficiencia: este algoritmo no es muy eficiente para grandes conjuntos de datos debido a su complejidad cuadrática. Propiedades de lista: este algoritmo es adecuado para listas pequeñas y casi ordenadas. La lista se ejecuta varias veces hasta que se ordena por completo. Sitio web: https://programacionpython.ecyt.unsam.edu.ar/material/12_Ordenamiento/02_Ordenamiento_sencillo/">

Ordenamiento Shell:

Año de creación: 1959

Autor: Donald Shell

Tiempo de ejecución: mejor caso O(n log n) y peor caso O(n^2)

Eficiencia: este algoritmo es más eficiente que los anteriores para conjuntos de datos más grandes, pero no es tan eficiente como otros algoritmos de clasificación como QuickSort o MergeSort. Características de la lista: este algoritmo es adecuado para listas de tamaño mediano. La lista se divide en subgrupos más pequeños y se organizan uno por uno antes de unirse. Sitio web: http://132.248.48.64/repositorio/moodle/pluginfile.php/1472/mod_resource/content/1/contenido/index.html#:~:text=El%20m%C3%A9todo%20de%20ordenamiento%20Shell,del%20ordenamiento%20de%20inserci%C3%B3n%20directa">

QuickSort:

Año de creación: 1960

Autor: Tony Hoare

Tiempo de ejecución: O(n log n) en el mejor y promedio de los casos y O(n^2) en el peor de los casos

Eficiencia: este algoritmo es muy eficiente en la mayoría de los casos, especialmente para grandes conjuntos de datos. Funciones de lista: este algoritmo es adecuado para listas de cualquier tamaño y es uno de los algoritmos de clasificación más utilizados. La lista se divide en dos subconjuntos y se ordenan por separado antes de combinarse. Sitio web: https://github.com/gbaudino/MetodosDeOrdenamiento">

Radix Sort:

Año de creación: 1887

Autor: Herman Hollerith

Tiempo de ejecución: O(d (n+b)), donde d es el número de números, n es el tamaño de la lista y b es la base de los números.

Eficiencia: este algoritmo es muy eficiente en términos de tiempo de ejecución, pero requiere más espacio de memoria que otros algoritmos. Propiedades de lista: este algoritmo es adecuado para listas de números enteros. La clasificación se realiza para cada número, comenzando con el número menos significativo y avanzando hacia el número más significativo. Sitio web: https://en.wikipedia.org/wiki/Radix_sort">

Shake o sacudida (Cocktail Sort):

Año de creación: Desconocido

Autor desconocido

Tiempo de ejecución: O(n^2) peor de los casos

Eficiencia: este algoritmo es similar al tipo de burbuja y tiene una eficiencia similar. Funciones de lista: este algoritmo es adecuado para listas pequeñas y medianas. Esto es similar a un tipo de burbuja, pero atraviesa la lista en ambas direcciones, no solo hacia adelante. Sitio web: https://en.wikipedia.org/wiki/Cocktail_shaker_sort">

MergeShort:

Año de creación: 1945

Autor: John von Neumann

Tiempo de ejecución: O(n log n) en todos los casos

Eficiencia: este algoritmo es muy eficiente y se utiliza ampliamente en la clasificación externa y para grandes conjuntos de datos. Funciones de lista: este algoritmo es adecuado para listas de cualquier tamaño. Divide la lista en mitades más pequeñas, las ordena y luego las fusiona para obtener la lista ordenada final. Sitio web: https://github.com/gbaudino/MetodosDeOrdenamiento">

Búsqueda Binaria (Binary Search):

Año de creación: 1946

Autor: John Mauchly y J. Presper Eckert

Tiempo de ejecución: O(log n)

Eficiencia:Este algoritmo es muy eficiente en términos de tiempo de ejecución y es especialmente adecuado para grandes conjuntos de datos. Este algoritmo es muy eficiente en términos de tiempo de ejecución y es especialmente adecuado para grandes conjuntos de datos. Sitio web: https://en.wikipedia.org/wiki/Counting_sort">

Búsqueda Secuencial (Sequential Search):

Año de creación: Desconocido

Autor desconocido

Tiempo de ejecución: O(n+k), donde n es el tamaño de la lista y k es el rango de los elementos

Eficiencia: este algoritmo es eficiente para listas con un rango pequeño de elementos. Propiedades de lista: este algoritmo es adecuado para listas de elementos con valores limitados. El algoritmo cuenta la frecuencia de cada elemento y luego reconstruye la lista ordenada a partir de esas frecuencias. Sitio web: https://www.delftstack.com/es/tutorial/algorithm/linear-search/">