Está en la página 1de 11

ALGORITMOS DE SELECCIÓN

Arico Murillo Cesar Octavio, Colimba Alison Cristina, Silva Orrala Joshua David, Tandazo
Guajala Mauri Andrey, Yarpas Cerda Sara Nicoll

Universidad de las Fuerzas Armadas “ESPE”

coarico@espe.edu.ec, jdsilva6@espe.edu.ec, matandazo3@espe.edu.ec,


snyarpas@espe.edu.ec,
RESUMEN 1.- INTRODUCCION

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

También podría gustarte