Está en la página 1de 12

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERIA EN SISTEMAS COMPUTACIONALES


CENTRO REGIONAL DE PANAMÁ OESTE
LICENCIATURA EN DESARROLLO DE SOFTWARE

Integrantes:

Josué Estrada 8-1004-1431


Mario Duque 8-1000-989
Edwin Mina 8-1014-83
Alberto Rangel 8-987-442
Jaime Rojas 8-996-623
Pilar Alonso 8-991-764
Gene Micewicz E-8-197254

Profesora:

Carmen Miranda Salazar de Sánchez

Materia:

Estructura de Datos II

Grupo:

9SL-121

Semestre:

III

Año:

2023
Índice

Contenido Pag.

Presentación 1.

Introducción 2.

Índice 3.

Ordenamiento por selección 4.

Algoritmos de selección básicos 5.

La selección en tiempo real 6.

Optimización de algoritmos de selección 7.

Casos de estudio y aplicaciones 8.

Selección de elementos específicos 9.

estructuras de datos lineales 10.

conclusión 11.

Referencias Bibliográficas 12.


introducción

La selección es una tarea fundamental en el ámbito de las estructuras de datos. En un


mundo cada vez más inundado de datos, encontrar información específica de manera
rápida y eficiente se ha vuelto esencial. La selección en estructuras de datos nos permite
buscar y recuperar elementos específicos según ciertos criterios o condiciones, lo que nos
ayuda a manejar grandes volúmenes de datos de manera efectiva.

Ordenamiento por selección

El ordenamiento por selección mejora el ordenamiento burbuja haciendo un sólo


intercambio por cada pasada a través de la lista. Para hacer esto, un ordenamiento por
selección busca el valor mayor a medida que hace una pasada y, después de completar la
pasada, lo pone en la ubicación correcta. Al igual que con un ordenamiento burbuja,
después de la primera pasada, el ítem mayor está en la ubicación correcta. Después de la
segunda pasada, el siguiente mayor está en su ubicación. Este proceso continúa y
requiere n−1 pasadas para ordenar los n ítems, ya que el ítem final debe estar en su lugar
después de la (n−1)-désima pasada.

La siguiente imagen muestra todo el proceso de ordenamiento. En cada paso, el ítem


mayor restante se selecciona y luego se pone en su ubicación correcta. La primera pasada
ubica el 93, la segunda pasada ubica el 77, la tercera ubica el 55, y así sucesivamente.
Algoritmos de Selección basicos

un algoritmo de selección es un algoritmo para encontrar el k-ésimo menor número en una lista o
vector; a este número se le llama estadístico de orden k. Este incluye los casos de encontrar el
mínimo, máximo, y la mediana. Existen algoritmos de selección O(n) (lineal en el peor caso), y
algoritmos sub-lineales son posibles para datos estructurados; en el caso extremos, O(1) para un
vector de elementos ordenados. La selección es un subproblema de otros problemas más
complejos, como el problema de la búsqueda del vecino más cercano y problema del camino más
corto. Muchos algoritmos de selección son derivados por generalización de algún algoritmo de
ordenación, y recíprocamente algunos algoritmos de ordenación pueden derivarse de repetidas
aplicaciones de selección.

El caso más simple de un algoritmo de selección es encontrar el mínimo elemento por iteración a
través de la lista, manteniendo un registro del mínimo en cada paso de la iteración, y puede verse
relacionado al selection sort. Por el contrario, el caso más complejo de un algoritmo de selección es
encontrar la mediana, y este necesariamente necesita n/2 memoria. De hecho, un algoritmo de
selección especializado para la mediana puede ser usado para realizar un algoritmo de selección
general, como en median of medians. El algoritmo de selección más conocido es quickselect, el cual
está relacionado al quicksort; como el quicksort, tiene (asintóticamente) rendimiento óptimo en la
media de los casos, pero mal rendimiento en el peor caso, no obstante puede ser modificado para
dar rendimiento óptimo en el peor caso también.

La selección en tiempo real

La selección en tiempo real se refiere a la capacidad de acceder y obtener un elemento


específico de una estructura de datos de manera eficiente, en un tiempo constante o casi
constante, independientemente del tamaño de la estructura. Esto significa que el tiempo
requerido para seleccionar un elemento no aumenta significativamente a medida que la
estructura de datos crece en tamaño.
Para lograr la selección en tiempo real, se utilizan diferentes técnicas y estructuras de datos
que permiten acceder directamente al elemento deseado, sin la necesidad de recorrer o
procesar todos los elementos de la estructura.
algunas estructuras de datos que permiten la selección en tiempo real:
Arrays
Listas enlazadas
Hash tables
Árboles binarios de búsqueda

Optimización de algoritmos de
selección

La optimización de algoritmos de selección es un proceso que busca mejorar el


rendimiento y la eficiencia de los algoritmos utilizados para seleccionar
elementos de una colección o conjunto de datos. Algunos enfoques:

Selección del algoritmo adecuado: Se comienza por elegir el algoritmo de


selección más apropiado para tu problema específico.
Complejidad algorítmica: Analizamos la complejidad algorítmica de tu
algoritmo de selección. Intenta reducir la complejidad algorítmica tanto como
sea posible para mejorar el rendimiento.
Estructuras de datos eficientes: Utiliza estructuras de datos eficientes
para almacenar y manipular tus datos.
Reducción de iteraciones: Busca formas de reducir el número de
iteraciones necesarias para seleccionar los elementos deseados.
Paralelización: Si tu algoritmo de selección es aplicable a un problema que
puede ser paralelizado, considera la posibilidad de utilizar técnicas de
programación paralela para acelerar la ejecución.
Pruebas y perfilado: Realiza pruebas exhaustivas de tu algoritmo de
selección y utiliza herramientas de perfilado para identificar cuellos de botella
y áreas de mejora.
Casos de estudio y aplicaciones

Caso de estudio - Estudio, selección e implementación de algoritmos de


selección con ranking para mejorar la clasificación de interacciones de proteínas
utilizando energías

El estudio de algoritmos de selección de


características, que ayude a seleccionar las
características que sean más relevantes en
su grupo para lograr que la clasificación de
las clases de complejos de Interacciones
Proteína-Proteína permanentes y
transitorias sea de una precisión mayor.

Se deben buscar y estudiar los algoritmos de selección que permitan


seleccionar las características energéticas de las proteínas.
Una vez realizado el estudio previo se debe analizar qué algoritmo puede ser
implementado en el tiempo del transcurso de la investigación, se debe analizar
su comportamiento en cuanto a al complejidad en el tiempo de ejecución y
que tipo de subconjunto (óptimo o sub-óptimo) entrega para su comprobación
con estudios anteriores.

Aplicaciones

- Estudio, selección e implementación de


algoritmos de selección con ranking para
mejorar la clasificación de interacciones de
proteínas utilizando energías
- Implementación de un algoritmo para la
selección de materiales termoplásticos en el
entorno nacional.
Seleccion de elementos especificos

Presentacion de tecnicas para la seleccion especifica, como para encontrar el minimo o


maximo, elementos distintos, encontrar k-esima, depende del tipo de estructura que estemos
utilizando. Aquí te proporcionaré algunos ejemplos adicionales:

1. Árboles: En un árbol, cada nodo puede tener varios nodos hijos. Para seleccionar un
elemento específico en un árbol, puedes utilizar técnicas de recorrido como el recorrido en
profundidad (DFS) o el recorrido en anchura (BFS) para buscar y acceder al elemento
deseado.

2.Grafos: En un grafo, los elementos se representan mediante nodos y las relaciones entre ellos
mediante aristas. Para seleccionar un elemento específico en un grafo, puedes utilizar algoritmos
de búsqueda como la búsqueda en profundidad (DFS) o la búsqueda en anchura (BFS) para
encontrar el nodo deseado.

3.Tablas hash: En una tabla hash, los elementos se almacenan en función de su clave y se puede
acceder a ellos rápidamente mediante esta clave. Para seleccionar un elemento específico,
necesitas conocer su clave y utilizarla para buscar en la tabla hash.

Estos son solo algunos ejemplos, ya que existen muchas más estructuras de datos con
diferentes formas de seleccionar elementos específicos. Cada estructura de datos tiene sus
propias operaciones y métodos para acceder y seleccionar elementos según su diseño y
funcionalidad específicos.
estructuras de datos lineales
1.Matriz (mesa):
Una matriz es una estructura de datos lineal que almacena elementos en ubicaciones consecutivas de
la memoria. -- Para una selección eficiente en la matriz, se puede acceder directamente al elemento que
se busca mediante su índice. Ventajas: acceso directo a los elementos, permite una selección rápida
con complejidad O(1). Buen rendimiento para volúmenes de datos fijos. Desventaja: el tamaño fijo de la
matriz es inelástico. La inserción o eliminación de elementos puede requerir la reorganización de la
matriz.
2. Lista enlazada:
Una lista enlazada es una estructura de datos lineal en la que cada elemento (nodo) contiene un valor y
un puntero en el siguiente nodo. - Para una selección efectiva de una lista enlazada, puede navegar por
la lista hasta que encuentre el elemento que desee. - Ventajas: inserción y supresión eficientes, porque
sólo es necesario actualizar los punteros. Buena flexibilidad en lo que respecta al tamaño de los datos.
Desventaja: acceso secuencial a los elementos, resultando en una selección lenta, complejidad O(n) en el
peor caso.
3. Batería:
La pila es una estructura de datos lineal que sigue el principio LIFO (Last In First Out), donde se añaden
y eliminan elementos del mismo extremo (arriba). - Para una selección eficiente en paquetes, los
artículos se pueden apilar hasta que se llegue al elemento deseado. Ventaja: inserción y eliminación
eficientes en la parte superior de la pila. Útil para tareas que requieren el seguimiento del historial o la
cancelación de pedidos. Desventaja: la selección en una posición arbitraria es ineficaz. El acceso a un
elemento en medio puede requerir apilar elementos adicionales, dando lugar a una complejidad O(n).
4. Cola:
-- Una cola es una estructura de datos lineal que sigue el principio FIFO (First In First Out), donde los
elementos se añaden por último y se eliminan primero. - Para una selección eficiente de la cola, se
pueden eliminar elementos de la cola hasta que se llegue al elemento deseado. Ventajas: inserción y
eliminación eficientes en ambos extremos de la cola. Útil para tareas a procesar por orden de acceso.
Desventaja: la selección en una posición arbitraria es ineficaz. El acceso a un elemento en una posición
intermedia puede requerir que se eliminen elementos adicionales de la cola, lo que provoca
complicaciones.
En conclusión, elegir una estructura de datos lineal para realizar una selección eficaz depende del
contexto y de los requisitos específicos. Las matrices están bien para el acceso directo pero no son muy
flexibles. Proporcione una lista enlazada
conclusión

En conclusión, la selección en estructuras de datos es un aspecto fundamental


en el manejo de grandes volúmenes de información. A través de algoritmos y
técnicas especializadas, podemos buscar y recuperar elementos específicos de
manera eficiente, evitando la necesidad de examinar todos los elementos en
una estructura de datos.

Referencias bibliográficas

http://repobib.ubiobio.cl/jspui/bitstream/123456789/3820/1/Gutierre
z_Contreras_V%C3%ADctor.pdf

También podría gustarte