Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
Algoritmos de Ordenamiento Externo.
Programacin 3. Universidad de Cuenca.
Abad F.,Munoz C.,Fajardo P.
Marco Teorico: Ordenamiento Directo, Polifase, Natural, Balanceada.
Algoritmos de Ordenamiento Externo.
Programacin 3. Universidad de Cuenca.
Abad F.,Munoz C.,Fajardo P.
Marco Teorico: Ordenamiento Directo, Polifase, Natural, Balanceada.
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad V: Métodos de Ordenamiento
Retícula ISIC-2010-224: Programa: AED-1026/2016
Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad V: Métodos de Ordenamiento
Retícula ISIC-2010-224: Programa: AED-1026/2016
Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Otras estructuras de datos (heap, tablas hash y diccionarios)Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Creado por Ing. Alvaro Enrique Ruano
https://alvaroruano.me/
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Incluye los temas:
•Listas
•Listas Enlazadas
•Listas Circulares
•Listas Doblemente Enlazadas
•Pilas
•Colas
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Incluye los temas:
1.1 Complejidad de un algoritmo
• Espacial
• Temporal
1.2 Análisis asintótico
• Notaciones
• Clasificación de algoritmos
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Ordenamiento rápido
• Ordenamiento por mezcla
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Método por Selección
• Método Shell
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Recursividad directa e indirecta
• Recursión versus iteración
Creado por Ing. Alvaro Enrique Ruano
Programación Orientada a Objetos - constructores y destructoresAlvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Constructores
• Destructores
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Método Burbuja
• Método por Inserción
Creado por Ing. Alvaro Enrique Ruano
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Herencia
• Polimorfismo
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• POO - atributos y métodos
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Introducción a los paradigmas de programación
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Técnicas de programación
• Estilo y codificación
• Documentación
• Depuración
• Pruebas
Creado por Ing. Alvaro Enrique Ruano
Análisis de una inversión en activos financieros negociados por medio de la B...Alvaro Enrique Ruano
El presente trabajo pretende ejemplificar el proceso de creación de un portafolio de inversión diversificado eligiendo entre diferentes valores en la BVN. El entendimiento del funcionamiento básico de la bolsa de valores y de la teoría de creación de portafolios es clave para poder realizar inversiones exitosas, por lo que se repasará el proceso completo mientras se vaya avanzando en el ejemplo.
Creado por Alvaro Enrique Ruano como parte del curso de "Teoría de Inversiones" de la Maestría en Finanzas de la Universidad Rafael Landívar
Solución de problemas y ciclo de vida del desarrollo de softwareAlvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
* Abstracción y resolución de problemas
* Introducción al ciclo de vida del software
Creado por Ing. Alvaro Enrique Ruano
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Los desafíos de calidad de software que nos trae la IA y los LLMsFederico Toledo
En esta charla, nos sumergiremos en los desafíos emergentes que la inteligencia artificial (IA) y los Large Language Models (LLMs) traen al mundo de la calidad del software y el testing. Exploraremos cómo la integración, uso o diseño de modelos de IA plantean nuevos retos, incluyendo la calidad de datos y detección de sesgos, sumando la complejidad de probar algo no determinístico. Revisaremos algunas propuestas que se están llevando adelante para ajustar nuestras tareas de testing al desarrollo de este tipo de sistemas, incluyendo enfoques de pruebas automatizadas y observabilidad.
2. Ejercicio Ordenamientos
Para el siguiente listado de arreglos, aplicar todos los métodos de
ordenamiento (ascendente) vistos en clase. Se deberán presentar todas las
tablas intermedias realizadas durante el proceso así como el listado de
intercambios realizados:
• 45,65,23,46,78,11,23,21,20,0
• 7,6,5,4,3,2,1
4. Búsqueda
● La búsqueda es una de las aplicaciones más importantes de las
computadoras.
● También es conocida como recuperación o searching.
● Es una operación para encontrar la posición de un elemento entre un
conjunto de elementos dados: lista, tabla o archivo.
5. Búsqueda
● Las búsquedas pueden clasificarse según el medio de almacenamiento
donde se encuentran los registros:
o Búsqueda interna: Es aquella que se realiza completamente en la
memoria RAM
o Búsqueda externa: Es aquella que se realiza dentro de archivos en
almacenamiento secundario (disco duro, memoria flash, cinta, etc.).
6. Búsqueda
● Existen diversos algoritmos de búsqueda, pero la elección dependerá de
la forma en que se encuentran almacenados los datos.
● Por definición, se considera a un algoritmo como “algoritmo de búsqueda”
si cumple las siguientes dos condiciones:
o Puede determinar si X pertenece al conjunto e indicar su posición
o Puede determinar si X no pertenece al conjunto
7. Búsqueda
● Existen diversos algoritmos de búsqueda, pero la elección dependerá de
la forma en que se encuentran almacenados los datos.
o Secuencial
o Binario
o Por transformación de claves hash.
● Por definición, se considera a un algoritmo como “algoritmo de búsqueda”
si cumple las siguientes dos condiciones:
o Puede determinar si X pertenece al conjunto e indicar su posición
o Puede determinar si X no pertenece al conjunto
8. Búsqueda Secuencial
● Es la forma más sencilla de búsqueda.
● Se dice que es una exploración secuencial del listado, de ahí viene el
nombre del método.
● Consiste en comparar cada elemento del listado contra el valor deseado.
● Tiene dos condiciones de finalización
o Cuando se encuentra el valor
o Cuando se termina de leer por completo el listado
9. Búsqueda Secuencial
● Ventajas
o Es sencillo de implementar ya que únicamente se utilizan estructuras
repetitivas.
o No requiere que el listado esté ordenado o en algún estado especial.
● Desventajas
o El poco eficiente ya que se debe recorrer por completo el arreglo.
o Tiempo excesivo de procesamiento en vectores grandes.
o Se requerirán (N+1)/2 comparaciones en promedio.
o En el peor de lo casos se requieren N comparaciones.
11. Mejoras al Algoritmo 1
● El algoritmo 1 realiza dos comparaciones en cada iteración:
o Una para comparar si se encuentra el elemento t
o La otra para evaluar si ya se llegó al final del vector
● Se puede mejorar el rendimiento disminuyendo a una comparación por
iteración al agregar un “valor centinela” que permita descubrir si ya se
terminó de recorrer el vector.
● Se utiliza el valor buscado como valor centinela y se coloca al final del
arreglo (en una posición adicional) para forzar a que el algoritmo siempre
tenga éxito encontrando el valor buscado.
13. Búsqueda Binaria
● Es eficiente cuando tratamos con conjuntos grandes de datos.
● Requiere que los datos estén ordenados.
● Se basa en la división sucesiva del espacio ocupado por el arreglo en
sucesivas mitades.
● Se basa en la estrategia de “divide y vencerás”
14. Búsqueda Binaria
o Se examina el elemento central de la lista.
o Si es el elemento buscado, se termina la búsqueda.
o Si no es el elemento buscado, se determina si el elemento buscado es
mayor o menor al central. Esto nos indicará si este elemento se encuentra
en la primera mitad de la lista o en la segunda mitad.
o Se elige la nueva mitad a evaluar y se repite este proceso utilizando el
elemento central de cada sublista.
20. Hashing
● También llamado búsqueda mediante transformación de claves.
● No se requiere que los datos estén ordenados.
● Consiste en convertir una clave dada (valor de búsqueda) en una
dirección dentro del listado donde se almacenan los valores (al momento
del almacenamiento).
● Esta misma conversión se realizará al momento de realizar la búsqueda,
obteniendo de forma inmediata la posición dentro del listado.
21. Hashing
● Existen casos donde es sencillo encontrar una función de conversión.
o Por ejemplo una lista de 100 empleados, donde el código de
empleado es un número del 1 al 100, la correspondencia es directa.
● Existen otros casos donde no es posible establecer una relación como el
inciso anterior.
o Por ejemplo, si necesitamos que el campo de búsqueda sea el
número de documento de identificación (varios millones) para una
muestra de 100 empleados.
23. Hashing
● La conversión entre las claves y la posición en el listado es realizada por
una función denominada “función de conversión” o “función hash”.
● Se dice que el objetivo de la función H(k) es convertir una clave k en una
dirección d.
● En el ejemplo anterior, la función H(k) convierte valores en un rango de
varios millones (número de documento de identificación) a un rango de
100 valores (tamaño del arreglo o lista).
24. Colisiones
● Existen casos donde para dos valores k de entrada, se producirá la misma
salida d, estos casos se llaman “Colisiones”.
● La colisión se soluciona definiendo la forma en que se se encuentra un
valor alternativo (d1, d2, …, dn) para almacenar el registro en esta nueva
posición.
● El éxito de esta técnica está en dos factores:
o La elección de la función H
o El procedimiento para manejo de colisiones
26. Métodos de Hashing
Truncamiento:
● Ignora una parte de la clave y se utiliza la parte restante directamente
como índice.
● Es un método muy rápido pero falla para distribuir las claves de forma
uniforme.
Ejemplo:
● Entrada: 7490312
● Proceso: Se trunca 90312
● Salida: 74
27. Métodos de Hashing
Plegamiento:
● Se divide la clave en diferentes partes.
● Las distintas partes se combinan de un modo conveniente, a menudo
suma o multiplicación
● Es recomendable que las partes tengan la misma cantidad de dígitos que
se espera tenga la salida.
● Se truncan los dígitos “sobrantes” más significativos de la salida.
Ejemplo:
● Entrada: 7490312
● Proceso: 74 + 90 + 31 + 2 = 197, se trunca a 97
● Salida: 97
28. Métodos de Hashing
Aritmética Modular:
● Se utiliza la función MOD para dividir la entrada dentro del rango del
índice (tamaño del array o lista).
● Se mejora la efectividad utilizando número primos cercanos al rango.
Ejemplo:
● Entrada: 7490312
● Proceso:
o Tamaño 100, el menor primo es 97.
o 7490312 MOD 97 = 69
● Salida: 69
29. Métodos de Hashing
Mitad del cuadrado:
● Se calcula el cuadrado de la clave y luego se seleccionan números de la
parte intermedia.
● Siempre se deben seleccionar las mismas posiciones dentro del cuadrado.
Ejemplo:
● Entrada: 7490312
● Proceso:
o 7490312^2 = 56,104,773,857,344
o Se toman las posiciones 6 y 7.
● Salida: 77