0 calificaciones0% encontró este documento útil (0 votos)
5 vistas11 páginas
El documento describe diferentes algoritmos de selección para ordenar una lista de números u otros elementos. Estos algoritmos incluyen selección por ordenamiento, selección parcial, selección basada en particionamiento y selección de mediana como estrategia de pivoteo. El algoritmo de selección más conocido es quickselect, el cual está relacionado con quicksort y tiene un rendimiento óptimo en promedio pero mal rendimiento en el peor caso.
El documento describe diferentes algoritmos de selección para ordenar una lista de números u otros elementos. Estos algoritmos incluyen selección por ordenamiento, selección parcial, selección basada en particionamiento y selección de mediana como estrategia de pivoteo. El algoritmo de selección más conocido es quickselect, el cual está relacionado con quicksort y tiene un rendimiento óptimo en promedio pero mal rendimiento en el peor caso.
El documento describe diferentes algoritmos de selección para ordenar una lista de números u otros elementos. Estos algoritmos incluyen selección por ordenamiento, selección parcial, selección basada en particionamiento y selección de mediana como estrategia de pivoteo. El algoritmo de selección más conocido es quickselect, el cual está relacionado con quicksort y tiene un rendimiento óptimo en promedio pero mal rendimiento en el peor caso.
El presente trabajo es un estudio del tema El ordenamiento por selección es un
Algoritmo de Selección que se encarga de algoritmo que requiere un orden de (n^2) encontrar el k-esimo menor de un numero operaciones para ordenar una lista de n en una listo vector, a este número lo números. llamamos como algo estadístico de orden El algoritmo de Selección se encarga de k, que incluye los casos de encontrar el ordenar los valores desde lo mínimo a lo mínimo, máximo y la mediana. También se máximo, en donde los realizara sin ningún podrá saber que un algoritmo de problema de por medio. Un Algoritmo de ordenamiento lo llamamos quicksort, Selección se ubica elementos de una lista o porque es uno de los algoritmos de vector, en una secuencia, dada por una selección más eficiente que conocemos relación de orden, tomando como punto de PALABRAS CLAVES partida el menor elemento.
Algoritmo de Selección, Quicksort, k- Dentro del algoritmo de selección existe la
esimo, elementos de una lista, Quickselect. selección por ordenamiento la cual se basa en lo que nosotros conocemos por ordenar, ABSTRACT el ordenamiento es una labor común que The present work is a study of the topic realizamos continuamente. ¿Pero te has Selection Algorithm that is in charge of preguntado qué es ordenar?, es algo tan finding the k-th minor of a number in a corriente en nuestras vidas que no nos ready vector, we call this number as detenemos a pensar en ello. Ordenar es something statistical of order k, which simplemente colocar información de una includes the cases of finding the minimum, manera especial basándonos en un criterio maximum and the median. You will also de ordenamiento. Dicho esto, en be able to know that we call a sorting programación ayuda a ordenar de la misma algorithm quicksort, because it is one of forma encontrando inicialmente el valor the most efficient selection algorithms that mínimo de todos los elementos de la lista we know inicialmente.
KEYWORDS Los algoritmos, son de carácter general, en
Selection algorithm, Quicksort, k-th, el cual podemos aplicar cualquier
elements of a list, Quickselect. operación matemática o cualquier
problema, pero en este tipo se tuvo como objetivo realizar un análisis comparativo Este algoritmo mejora ligeramente el de la implementación de una plataforma de algoritmo de burbuja. En el caso de tener procesamiento distribuido de una colección que ordenar un vector de enteros, esta de documentos de texto para la mejora no es muy sustancial, pero cuando construcción de un sistema para la hay que ordenar un vector de estructuras búsqueda de información y relevancia de más complejas, la operación de resultados por medio de algoritmos de intercambiar los elementos sería más procesamiento distribuido. costosa en este caso. (EcuRed, 2020)
2.- MARCO TEORICO Su funcionamiento sería más costoso de
forma general como: En casos simples el algoritmo de Selección se encarga de encontrar el mínimo o le - Buscar un mínimo entre una posición i y máximo elementos de iteración a través de el final del alista la lista, manteniendo un registro del -Intercambiar el mínimo con el elemento mínimo o el máximo en cada paso de la de la posición i iteración y puede verse relacionado al selection sort. Por el contrario, el algoritmo 2.1 Selección por ordenamiento
de Selección más complejo es encontrar la El ordenamiento por selección (Selection
mediana y este necesariamente necesita n/2 Sort en inglés) es un algoritmo de memoria, un algoritmo de selección ordenamiento que requiere un número especializado para la mediana puede ser determinado de operaciones para ordenar usado para realizar un algoritmo general, una lista de n elementos. (EcuRed, 2020) como en median of medians. (Wikipedia, Descripción del algoritmo 2021) Su funcionamiento es el siguiente: El algoritmo de selección más conocido es Buscar el mínimo elemento de la quickselect, el cual está relacionada al lista quicksort, como cualquier quicksort, tiene Intercambiarlo con el primero asintóticamente, rendimiento óptico en la Buscar el siguiente mínimo en el media de los casos, pero mal rendimiento resto de la lista en el peor caso, no obstante, puede ser modificado para dar rendimiento óptico en Intercambiarlo con el segundo
el peor de los casos también. (EcuRed, Y en general:
2020) Buscar el mínimo elemento entre algoritmo de selección que demora O (kn) una posición i y el final de la lista tiempo. Esto es asintóticamente ineficiente, pero puede ser suficientemente eficiente si Explicado de una mejor manera el k es pequeño, y es fácil de implementar. algoritmo se basa en la siguiente idea. En Concretamente encontramos el mínimo y el arreglo ordenado, el mínimo debe lo movemos al principio, repitiendo sobre quedar en a [0], de modo que se ubica su la lista restante hasta haber acumulado k posición real en el arreglo. Por ejemplo, se elementos, y luego retornando el k-ésimo determina que está en a [3] como lo indica elemento. (Wikipedia, 2021) el primer arreglo de izquierda a derecha en la siguiente figura: 2.3 Selección basada en particionamiento
Se utiliza el algoritmo de selección rápida.
Es una variante del algoritmo de clasificación rápida. En ambos, elegimos un elemento de pivote y usando el paso de partición del algoritmo de ordenación (EcuRed, 2020) rápida, este organiza todos los elementos 2.2 Ordenamiento por selección parcial más pequeños que el pivote a su izquierda y los elementos más grandes que él a su Un simple ejemplo de selección por derecha. Los algoritmos basados en ordenación parcial es usar el selection sort. particiones se realizan en su lugar, lo que El obvio algoritmo lineal para encontrar el da como resultado una clasificación parcial mínimo (resp. máximo) – iterando sobre la de los datos. (Wikipedia, 2021) lista y manteniendo el actual mínimo (resp. 2.4 Selección de mediana como máximo) – puede ser visto como estrategia de pivoteo ordenación por selección parcial que selecciona el menor elemento. Sin Puede ser usado para un algoritmo de embargo, otros ordenamientos parciales selección general o un algoritmo de también se reducen a esto para el caso k = ordenación, esto aplicándolo como 1, como el heap sort parcial. (Wikipedia, estrategia de pivoteo en Quickselect o 2021) Quicksort; si el algoritmo de selección de mediana es asintóticamente óptimo la De forma más general, un ordenamiento selección resultante también lo será. En el por selección parcial produce un simple algoritmo de selección de mediana, la aplicable a partir ´ de una cantidad estrategia de pivoteo calcula una mediana relativamente pequeña. (EcuRed, 2020) aproximada y la utiliza como pivote. 2.6 Estabilidad, ventajas y desventajas (Wikipedia, 2021) Un número mínimo de operaciones a La mediana de una matriz es el mejor realizar en la ejecución de cada instrucción pivote para clasificar una matriz porque en un computador, implica un menor divide uniformemente los datos en dos tiempo de realización al momento de partes y, por lo tanto, garantiza una entregar resultados. La implementación de clasificación óptima, asumiendo que el un algoritmo es verificable cuando al algoritmo de selección es óptimo. momento de ordenar un conjunto de datos, (Wikipedia, 2021) tenga un par de ellos con la misma clave. 2.5 Análisis del Costo Computacional Sera notable que el orden relativo entre los conjuntos es conservado. (EcuRed, 2020) Como parte de la Teoría de la Complejidad Computacional, se entiende por la La regla básica para calcular el tiempo de computación que estudia los recursos ejecución de un programa es ir desde las requeridos durante el cálculo para resolver construcciones más internas hacia las más un problema, definiendo la complejidad de externas, comenzando por asignar el costo cálculo como la cantidad de recursos computacional a las sentencias básicas. necesarios para efectuarlo. La idea de la (EcuRed, 2020) eficiencia de los algoritmos es basada en Ventajas: una premisa de que el éxito de un algoritmo no debe depender en ningún -Fácil implementación y eficiencia
caso de la velocidad, potencial del sistema operativa
ejecutable. Al hablar del sistema -No requiere memoria adicional
informático en el entorno de análisis del -Los intercambios son mínimos coste computacional (o de otros recursos), englobamos en la expresión cualquier -Constante rendimiento, esto gracia a la característica peculiar según sistema existencia de poca diferencia entre el peor operativo, hardware, lenguaje, etc. Pero y mejor caso de solución. esta estrategia de “búsqueda exhaustiva” ´ -Obtención de soluciones óptimas tiene un gran defecto, el costo inferiores y dominadas computacional crece de tal manera con el número de ciudades que deja de ser Desventajas: -Tiende a ser lento y poco eficiente cuando vector las edades que han sido las listas son grandes o de un tamaño ingresadas: numeros[i]=edad mediano Usamos el algoritmo de selección que usa estructuras de control el IF -Numerosas comparaciones a realizarse y estructuras repetitivas FOR -Puede que requiera de un algoritmo de anidadas, donde interactúan las optimización por lo cual se implementa en variables i, j que son necesarias el mismo computador. para realizar el cambio de posición 3.- EXPERIMENTACION de las edades y las variables: edades, numeros[], min y aux que Ejercicio_1: Ingresar las edades que se encargaran de hacer el arreglo de indique el usuario por teclado y mostrar las edades. por pantalla las edades ingresadas en orden Dentro del algoritmo primero busca ascendente y descendente. el mínimo elemento de la lista Entrada: intercambiar con el primer elemento, buscar nuevamente el Definimos a nuestras variables con int (tipo entero): n, edad, mínimo elemento del resto de la lista e intercambiarlo con el números[n], i, j, aux, min. segundo y así sucesivamente Proceso: Las edades quedan ordenadas en su Se ingresa por teclado la cantidad respectiva posición de edades que desea ingresar el Salida: usuario que corresponde a la variable (n). Imprimir las edades en orden
numeros[n]=el número de Ascendente
elementos a ingresar por el usuario Imprimir las edades en orden
Ingresar por teclado las edades con Descendente
un ciclo FOR donde la iteración DEV-C++ (Condigo en lenguaje C)
hará que ingrese edad por edad hasta (n). for(i=0; i<n; i++) {se ingresan las edades}; la variable números[i] almacenara dentro del Ejecución del Programa con 10 edades
5.- CONCLUCIONES
El Algoritmo de Selección se encarga de
encontrar el mínimo o le máximo elementos de iteración a través de la lista. Lo más complejo del Algoritmo de 4.- EVALUACION DE RESULTADOS Selección es sacar la mediana ya que se Ejercicio_1: necesita ingresar la formula n/2 memoria
Compilación sin Errores: que se usa para sacar un Algoritmo de
Selección general.
El algoritmo de selección ayudara a
ordenar de manera precisa una lista de elementos a ordenarse y su uso es el mejor en algunos casos porque su manera de implementarse no es difícil y tiene un rendimiento constante, pero suele ser lento Ejecución del Programa con 5 edades cuando realiza numerosas comparaciones.
Los algoritmos evolutivos son los más a
destacar en los métodos diseñador para la optimización de problemas con funciones 7.- BIBLIOGRAFIAS objetivo de alto costo computacional, y que 7.1.- Universidad de chile. (s.f.). Obtenido si ciertas condiciones de un problema de concreto es usual combinar dichos https://users.dcc.uchile.cl/~lmateu/ algoritmos con métodos clásicos e CC10A/Apuntes/ordenamiento/ind iterativos para las búsquedas locales ex.html intercalas dentro del proceso de optimización. 7.2.- Wikipedia. (2005). Obtenido de https://es.wikipedia.org/wiki/Algori En conclusión, el Algoritmo de selección tmo_de_selección#Selección_por_ se encarga solo de ordenar los elementos ordenamiento dentro de una lista buscando el mínimo elemento de la lista intercambiar con el 7.3.- Wikipedia (2021). Algoritmo de
primer elemento, buscar nuevamente el Selección.
mínimo elemento del resto de la lista e https://es.wikipedia.org/wiki/Algoritmo_de
intercambiarlo con el segundo y así _selecci%C3%B3n#:~:text=El%20caso%2
sucesivamente hasta que nuestro arreglo 0m%C3%A1s%20simple%20de,verse%20
quede correctamente ordenado sea cual sea relacionado%20al%20selection%20sort
la posición inicial de los elementos. 7.4.- EcuRed (2020). Algoritmo de
El algoritmo de selección tanto basado en ordenamiento por selección.
participamiento y estrategia de selección https://www.ecured.cu/Algoritmo_de_orde
de mediana usa un pivote para realizar un namiento_por_selecci%C3%B3n
ordenamiento, que lo que hace es ordenar 7.5.- R. Hernández, J.C. L ´ azaro, R.
los datos y elementos grandes y pequeños, Dormido, and S. Ros. ´ Estructuras de de sus estrategias más comunes se Datos y Algoritmos. Prentice Hall, 2001. encuentra la Quickselect y su variante la 7.6.- Gutiérrez-Méndez, F. (2011). Quicksort. Optimización Multiobjetivo usando 6.- CONFLICTO DE INTERES Algoritmos Genéticos Culturales. Tesis de
Los autores de este paper declaran que no Maestro en Ciencias de la Computación.
existió ningún problema entre sí, los CINVESTAV, Unidad de Zacatenco,
autores A.C, C.C, S.J, T.M, y Y.S, Departamento de Computación, México.
muestran un trabajo equitativo, el orden es 7.7.- T. Lee, H. Lee, K. H. Rhee, and S. U.
de manera alfabética Shin, “The efficient implementation of distributed indexing with hadoop for 8.8.- Parcial: Que tiene relación con una digital investigations on big data,” parte del todo o que no está completo o Comput. Sci. Inf. Syst., vol. 11, no. 3, pp. acabado. 1037–1054, 2014. 8.9.- Arreglo: Es una colección de 8.- GLOSARIO posiciones de almacenamiento de datos, donde cada una tiene el mismo tipo de dato 8.1. - Selection Sort: Es un algoritmo de y el mismo nombre. ordenamiento que requiere O (n∧ 2) operaciones para ordenar una lista de n 8.10.- Selección: Elección de una o varias elementos personas o cosas entre un conjunto por un determinado criterio o motivo 8.2.- Median of medians: obtener la mediana y la media de un arreglo en C. Es 8.11.- Pivote: Punta de un objeto sobre la decir, obtener el promedio de un arreglo y que se introduce o se sostiene otro objeto también el elemento central o el que se diferente, logrando que uno esté en encuentra a la mitad de la sucesión condiciones de girar sobre el otro.
8.3.- Quickselect: En informática , la 8.12.- Matriz: Una matriz puede ser un
selección rápida es un algoritmo de molde que se emplea para darle forma a selección para encontrar el k -ésimo algo. En este marco, la matriz es un elemento más pequeño en una lista soporte o un modelo. desordenada 8.13.- Adaptador: Un adaptador de red es 8.4.- Quicksort: Es un algoritmo de un hardware que te permite enlazar a ordenamiento creado por el científico varios ordenadores entre ellos con el fin de británico en computación C.A.R. Hoare enviar y recibir documentos, fotos o archivos, discos duros, impresoras, entre 8.5.- Asintóticamente: Perteneciente, otros. relativo o siendo una asíntota. 8.14. Multiobjetivo: Consideraciones 8.6.- Heapsort: Es un algoritmo de sobre aleatoriedad y difusiva. clasificación basado en comparaciones. 8.15.- Optimización: basada en varios 8.7.- Ordenamiento: Es la organización componentes personalizados que le ayudan de elementos en una secuencia tomando en a ajustar sus operaciones de programación cuenta variables y criterios previamente establecidos. 8.16.- Algoritmos evolutivos: métodos de optimización y búsqueda de soluciones basados en los postulados en evolución biológica, y estrategias evolutivas.
8.17.- Aproximaciones: Búsqueda sobre
ámbitos amplios de datos y sobre fuentes de informaciones múltiples y variadas
8.18.- Binary Search: o Búsqueda Binaria
es un tipo particular de árbol binario que presenta una estructura de datos en forma de árbol usada e informático
8.19.- Bubble Sort: Es un sencillo
algoritmo de ordenamiento, que ordena la lista intercambiándolos de posición si están en orden equivocado
8.20.- Insertion Sort: Ordenamiento por
inserción es un algoritmo sencillo de ordenamiento, no muy eficiente comparado con otros muchos más rapidos como Heap Sort