Tablas Asociativas (Hash) Tablas: filas & columnas de información Especificación algebraica
|
|
- Mario Alcaraz Espinoza
- hace 7 años
- Vistas:
Transcripción
1 Tablas Asociativas (Hash) Tablas: filas & columnas de información Una tabla tiene varios campos (tipos de información) Una guía telefónica podría tener campos como: nombre, dirección, número de teléfono, etc. Una cuenta de correo podría tener campos como: nombre de usuario (ID), password, nombre completo, etc. Para encontrar una en la tabla, sólo se necesita conocer el contenido de uno de los campos (no de todos ellos). Este concepto se conoce como key () En la guía de teléfonos, la suele ser el nombre En una cuenta de correo, la suele ser el nombre de usuario (ID) Idealmente, una identifica unívocamente una Si la es el nombre y ninguna en la guía tiene el mismo nombre, la identificará de forma unívoca cada Especificación algebraica Operaciones: CrearTablaVacia EsTablaVacia Está Recuperar Insertar Borrar 3
2 3.4.2 Especificación algebraica del TAD TipoTabla ESPECIFICACION Tablas PARAMETROS GENERICOS TIPOS TipoElemento, TipoClave OPERACIONES Clave: TipoElemento TipoClave FIN PARAMETROS GENERICOS TIPOS TipoTabla OPERACIONES (* CONSTRUCTORAS GENERADORAS *) CrearTablaVacia: TipoTabla Insertar: TipoTabla x TipoElemento TipoTabla (* OBSERVADORAS SELECTORAS *) PARCIAL Recuperar: TipoTabla x TipoClave TipoElemento Especificación algebraica del TAD TipoTabla (* OBSERVADORAS NO SELECTORAS *) EsTablaVacia: TipoTabla Booleano Esta : TipoTabla x TipoClave Booleano (* CONSTRUCTORAS NO GENERADORAS *) Borrar: TipoTabla x TipoClave TipoTabla VARIABLES e,e1,e2 : TipoElemento c : TipoClave t: TipoTabla ECUACIONES DE DEFINITUD SI Esta(t,c) DEF (Recuperar(t,c)) Especificación algebraica del TAD TipoTabla ECUACIONES ENTRE GENERADORAS (*Conmutatividad y prevalencia ultima insercion *) Insertar(Insertar(t, e1), e2) = SI Clave(e1) = Clave(e2) Insertar(t,e2) Insertar(Insertar(t,e2), e1) ECUACIONES (* Observadoras selectoras *) Recuperar(Insertar(t,e), c) = SI Clave(e)=c e Recuperar(t, c) 6
3 3.4.2 Especificación algebraica del TAD TipoTabla (* Observadoras no selectoras *) EsTablaVacia(CrearTablaVacia) = CIERTO EsTablaVacia(Insertar(t,e)) = FALSO Esta(CrearTablaVacia, c ) = FALSO Esta(Insertar(t,e),c ) = SI Clave(e) = c CIERTO Esta(t,c) (* Constructoras no generadoras *) Borrar(CrearTablaVacia, c) = CrearTablaVacia Borrar(Insertar(t, e), c) = SI Clave(e) = c Borrar(t,c) Insertar(Borrar(t,c), e) FIN ESPECIFICACIÓN 7 Implementación de tablas La elección de la implementación depende de las siguientes características Frecuencia de inserción y borrado de s Cantidad de s dispoblibles que es probable usar Patrón probable de búsquedas por e.g. Serán todas las búsquedas mediante una o dos s? La tabla es suficientemente pequeñas como para caber en memoria Vida útil de la tabla 8 NodoTabla: una y su Para las búsquedas se suele almacenar de forma separada la y la (incluso aunque se repita la información) NodoTabla Smith Smith, 124 Hawkers Lane, Yeo Yeo, 1 Apple Crescent,
4 0 0 Implementación 1: Array secuencial desordenado Array donde cada NodoTabla se almacena consecutivamente en cualquier orden Insertar: añadir al final del array; O(1) Encontrar: buscar por las s, potentialmente, todas O(n) Borrar: encontrar + reemplazar el nodo eliminado con el último; O(n) etc. 10 Implementación 2: Array secuencial ordenado Array donde NodoTabla se almacena consecutivamente y ordenado por la Insertar: añadir ordenado; O(n) Encontrar: búsqueda binaria; O(log n) Borrar: encontrar, eliminar el nodo y compactar; O(n) etc. Se puede utilizar la búsqueda binaria porque el array está ordenado 11 Implementación 3: Lista enlazada (ordenada o no) NodosTabla se almacenan de nuevo consecutivamente Insertar: añadir por cabecera; O(1) o O(n) para listas ordenadas Encontrar: buscar por todas las posibles s; O(n) también O(n) para listas ordenadas Borrar: encontrar y eliminar, corrigiendo los punteros correspondientes; O(n) etc. 12
5 Implementación 4: Árbol AVL Árbol AVL, ordenado por la Insertar: insección estándar; O(log n) Encontrar: búsqueda estándar (sin eliminar); O(log n) Borrar: borrado estándar; O(log n) O(log n) is el mejor de todos pero sería deseable O(1) etc. 13 Implementación 5: Tablas hash Array en el que NodosTabla no se almacenan consecutivamente Su posición de almacenamiento se determina aplicando una función hash a la 4 función hash índice del array 10 Clave dispersada (Hashed key): resultado de aplicar la función has a la Claves y s se dispersan por todo el array Implementación 5: hashing Array con NodosTabla almacenados no consecutivos su lugar de almacenado se calcula usando un función hash Insetar: calcular la posición de almacenamiento e insertar; O(1) Encontrar: calcular la posición de almacenamiento y devolver; O(1) Borrar: calcular la posición de almacenamiento y poner a null; O(1) Todas las operaciones son O(1)! 15
6 Ejemplo de dispersión (Hashing) : Tienda de frutas 10 posiciones en la table hash Números de Stock entre 0 and 1000 función hash : no. stock / 100 Qué ocurres si se inserta el no. 350? Posición 3 está ocupada: hay una colisión Estrategia de resolución de Colisiones: insertar en la siguiente posición libre Dado un número de stock, se encuentra la posición utilizando la función hash aplicada al no. stock, resolviendo las colisiones si fuese necesario key entry 85 85, manzanas , uvas , peras , naranjas , papayas 16 Factores que afectan al rendimiento de las tablas hash La función hash Idealmente debería distribuir las s y s por toda la tabla Debería minimizar las colisiones (posición devuelta por la función hash ya ocupada Estrategia de resolución de colisiones Encadenamiento separado: enlazar juntas varias / en cada posición Direccionamiento abierto: almacenar s/s en posiciones diferentes Tamaño de la tabla (suele ser un número primo) Demasiado grande: se desperdicia memoria Demasiado pequeño, icrementará las colisiones pudiendo forzar rehashing (copiar en una tabla mayor) Apropiado a la función hash utilizada 17 Selección de la función hash: convertir la en una posición Truncado (Truncation) Ignorar parte de la y utilizar el resto como el índice del array Técnica muy rápida pero puede causar el agrupamiento de las s en alguna zona concreta de la tabla (clustering) Plegado (Folding) Dividir la en varias partes y combinarlas de forma apropiada Utiliza toda la información de la (no como el truncado) Aritmética Modular (Modular arithmetic) Dividir la posicón por el tamaño de la tabla y tomar el resto como nueva posición Esta técnica se puede usar después de un truncado y/o plegado o sola 18
7 ( 1 ) Ejemplos de funciones hash Truncado: si los estudiantes tienen un identificador de 9- dígitos, tomar los tres últimos dígitos como posición de la tabla e.g se convierte en 622 Plegado: dividir el número de 9-dígitoa number en tres de 3- dígitos, y sumarlos e.g se convierte en = 1923 Aritmética Modular: si el tamaño de la tabla es 1000, e.g mod 1000 = ( 2 ) Ejemplos de funciones hash Usar el número de teléfono como El código de área no es aleatorio, no dispersará las s/s por toda la tabla (habrá muchas colisiones) Los últimos tres dígitos son más aleatorios Usar un nombre como Usar el nombre entero en vez del apellido (los apellidos son menos diversos) Asignar nombres a caracteres (e.g. a = 1, b = 2; o valores Unicode) Estrategia 1: Sumar los números resultanes. Inapropiado para tamaños grandes de tabla Estrategia 2: Calcular el número máximo de caracteres c (e.g. c = 54 {a,..z}+{a,..,z}+{ }+{_}). Multiplicar cada caracter en el nombre por potencias incrementales de c. Finalmente, sumar el resultado 20 Seleccionar el tamaño de la tabla para minimizar las colisiones Al aumenta el número de elementos en la tabla, la probabilidad de colisión aumenta hacer la tabla grande pero práctica Si el tamño de la tabla es 100, y las s dispersadas son divisibles por 10, habrá muchísimas colisiones Muy malo sin el tamaño es potencia de un entero pequeño (e.g. 2 o 10) En general, las colisiones suelen ser más frecuentes si: Máximo común divisor(s dispersadas, tamaño tabla) > 1 Consecuencia: tamaño de la tabla número primo (gcd = 1) Las colisiones podría seguir produciéndose estrategia de resolución de colisiones 21
8 Resolución de colisiones: direccionamiento abierto (1) Prueba (Probing): si la posición, dada por la dispersada, está ocupada, incrementar la posición una cantidad hasta encontrar una posicón vacía Prueba lineal: incrementar de 1 en 1 [mod tamaño_tabla] Prueba cuadrática: añadir a la posición original, 1, 4, 9, 16, Utilizar la resolución de colisiones según se inserta y cuando se busca (asegurándose de que es la que se está buscando) Se podría también hacer un hash doble: redispersar con otra función hash Con direccionamiento abierto, el tamaño de la tabla debería ser el dobe del número de elementos esperados 22 Resolución de colisiones: direccionamiento abierto (2) Si la tabla está vacia, si hay muchas colisiones, la prueba lineal puede agrupar (clustering) las s/s Incrementa el timpo de insertar y borrar Para tabla de tamaño n, si está vacía, la probabilidad de que en la siguiente se ocupe una posición cualquiera es 1/n En el diagrama, la probabilidad de que la posición 2 se ocupe después es 2/n (tanto si cae en la 1 o la 2 se ocupa la segunda) Una vez que la 2 está llena, la probabilidad de ocupar la posición 4 es 4/n y la 7 es 7/n (i.e. la probabilidad de obtener cadenas largas se incrementa sucesivamente) 23 Resolución de colisiones: direccionamiento abierto (3) Una / vacía indica el final de un grupo (cluster) Se puede utilizar para terminar una operación de encontrar ya que no podría aparecer más adelante Consecuencia: si se elimina una, dentro de un grupo, no se debería vaciar (Poner un flag que indique que está vacía) Permite que la prueba lineal siga hasta el final del grupo El elemento se marca como eleminado pero se mantiene el cluster para aumentar la eficiencia de las operaciones 24
9 Resolución de colisiones: ( 4 ) direccionamiento abierto Laprueba cuadrática es una solución para el problema del agrupado (clustering) Prueba Lineal suma1, 2, 3, etc. a la dispersada original Prueba cuadrática suma 1 2, 2 2, 3 2 etc. a la dispersada original Sin embargo, la prueba lineal asegura que todas las posiciones libres se examinarán (la prueba cuadrática no lo hace) e.g. si el tamaño de la tabla es 16 y la dispersada es 3 se tendría la secuencia: 3, 4, 7, 12, 3, 12, 7, 4 En general, con prueba cudrática, la inserción podría ser imposible si la tabla está más llena que la mitad Necestia un rehash (doblar la tabla y redispersar) 25 Resolución de colisiones: encadenamiento separado Cada posición de la tabla es una lista enlazada Añadir s/s en la lista (por cabecera) Ventajas sobre el direccionamiento abierto: Inserción y borrado más sencillo El tamaño del array no es una limitación (aunque se debe minimizar las colisiones) tamaño de tabla igual al número de s esperadas Desventaja Sobrecarga de memoria si hay pocas s No se necestia cambiar la posición ent. ent. ent. ent. ent. 26 Rehashing: aumentar la tabla Proceso de redispersión (rehashing): Crear una nueva tabla de tamaño doble (ajustando a un número primo) Transferir las s de la tabla vieja a la nueva, recalculando sus nevas posiciones (utilizando la función hash) Cúando se debe hacer rehashing Cuando la tabla está completamente llena Con prueba cuadrática, cuando la tabla está llena a la mitad o la inserción falla Por qué doblar el tamaño? Si n es el número de elementos en la tabla, después de la redispersión habrá n/2 inserciones (si se hizo con la tabla llena) Haciendo el tamaño 2n, se añade un coste constante a cada inserción 27
10 Aplicaciones de las tablas hash Los compiladores usan tablas hash (tabla de símbolos) para mantener al información de las variables declaradas Correctores ortográficos on-line si detectan un error ortográfico (en vez de corregir) se busca en un diccionario almacenado en una tabla hash buscando las palabras alternativas en orden constante Los juegos usan tablas para almacenar posiciones ya visitadas, ahorrando mucho tiempo si se vuelve a encontrar la misma posición Para comprobar si dos elementos son iguales si dos elementos tienen valor hash distinto los elementos son diferentes Almacenado de datos dispersos 28 Tablas hash Vs. otras estructuras Las tablas hash son convenientes cuando hay necesidad de muchas búsquedas en tiempos bajos Las tablas hash no son tan adecuadas si hay muchas inserciones y borrados, o si se necesita recorrer entera en este caso es mejor un AVL Si hay más datos que memoria dispoble, se suele utilizar un árbol-b Las tablas hash tampoco son convenientes si se ejecutan operaciones que requieran que las s estén ordenadas e.g. Encontrar el mínimo (los valores de las s no tienen que mantener el orden) 29 Prestaciones de las tablas hash Para analizar las prestaciones de las tablas hash se necesita considerar las búsquedas satisfactorias y no satisfactorias por separado Direccionamiento abierto El número de pruebas depende del factor de carga (denotado por λ) que representa el ratio entre s presentes en la tabla y posiciones del array Encadenamiento separado El número medio de pruebas para una búsqueda satisfactoria es λ y para una no satisfactoria es 1 + λ/2 30
11 Performance of Hashing (2) Para direccionamiento abierto, el cálculo es más complicado. Los valores típicos son: Factor de carga Búsqueda satisfactoria Prueba lineal Prueba cuadrática Búsqueda no satisfactoria Prueba lineal Prueba cuadrática Indicar que los valores no dependen del tamaño del array o del número de s, sólo depende de su ratio (factor de carga) 31
Hashing (Funciones de Dispersión)
Hashing características Hashing (Funciones de Dispersión) Mauricio Solar Lorna Figueroa No necesita almacenamiento adicional (índice). Facilita la inserción y eliminación rápida de registros. Encuentra
Más detallesTema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom
Tema 05: Tablas hash M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Función
Más detallesEstructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria
Estructura de datos y Algoritmos Tema III Clasificación en memoria secundaria 3.1. Clasificación externa basada en mezcla 3.1.1. Mezcla directa. 3.1.2. Mezcla natural. 3.1.3. Mezcla balanceada múltiple.
Más detallesTabla de Símbolos. Programación II Margarita Álvarez
Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados
Más detallesTabla de Símbolos. Programación II Margarita Álvarez
Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados
Más detallesCapítulo 3. Clasificación en Memoria Secundaria
Capítulo 3. Clasificación en Memoria Secundaria INTRODUCCIÓN Las memorias secundarias (cintas magnéticas, discos duros, ) se caracterizan en general porque el acceso es secuencial. Es decir, en un instante
Más detallesTablas de dispersión (hash tables)
Tablas de dispersión (hash tables) La dispersión es una técnica empleada para realizar inserciones, eliminaciones y búsquedas en un tiempo promedio constante. La estructura de datos ideal para la tabla
Más detallesTablas de Dispersión (Hashing Tables)
Tablas de Dispersión (Hashing Tables) Las tablas de dispersión o hashing tables (en inglés) es una técnica que se utiliza para implementar inserciones, eliminaciones y búsquedas en un tiempo medio constante.
Más detallesAlgoritmos y Estructuras de Datos Curso 04/05. Ejercicios
35. Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas
Más detallesEs común al crear estructuras de datos y luego trabajar sobre las mismas, tener la necesidad de realizar búsquedas en forma más frecuente que la
Es común al crear estructuras de datos y luego trabajar sobre las mismas, tener la necesidad de realizar búsquedas en forma más frecuente que la necesidad de realizar inserciones. Por ejemplo si tenemos
Más detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática
2.1.Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas
Más detallesEstructuras de datos: Tablas de dispersión
Estructuras de datos: Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge sjorge@udc.es Referencias bibliográficas M. A. Weiss. Dispersión. En Estructuras de datos y algoritmos,
Más detallesTablas (Diccionarios). Modelo matemático
Tablas (Diccionarios). Modelo matemático Asumimos un conjunto de claves C y un conjunto de valores V. Matemáticamente una tabla es una aplicación t : C V. El grafo de dicha función es un conjunto de pares
Más detalles1. Características de la organización direccionada 2. Tipos de organización direccionada 3. Funciones de Transformación 4. Gestión de desbordamientos
Tema 3: Organización Direccionada 1. Características de la organización direccionada 2. Tipos de organización direccionada 3. Funciones de Transformación 4. Gestión de desbordamientos Tema 3.1: Organización
Más detallesÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas...
ÍNDICE 1 Índice Índice 1 1. Introducción 2 2. Estructuras de datos 3 2.1. Consideraciones generales a todas las estructuras de datos......... 3 2.2. Listas...................................... 3 2.2.1.
Más detallesEl TAD tabla y las tablas dispersas (o tablas hash) Lección 19
El TAD tabla y las tablas dispersas (o tablas hash) Lección 19 Concepto de Tabla Una tabla es un conjunto o colección de pares c se denomina clave, y v se denomina valor asociado a la clave c En
Más detallesEsquema básico de una Tabla de Dispersión
3 Tablas de Dispersión Estructura de datos para gestionar colecciones de elementos donde la búsqueda de un elemento puede hacerse en O(1) en un alto porcentaje de casos - mejora el tiempo de búsqueda en
Más detallesEstructuras Dinámicas de datos.
Estructuras Dinámicas de datos. Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa. Una estructura dinámica de datos es una colección de elementos llamadas nodos
Más detallesAlonso Ramirez Manzanares Computación y Algoritmos 03.05
Tablas de hash (2) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 03.05 Tablas de hash: resolviendo colisiones por encadenamiento cuando el número de elementos en total es proporcional al número
Más detallesEstructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas
Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas Departamento de Informática Universidad de Valladolid Curso 2011-12 Grado en Ingeniería Informática Grado en Ingeniería Informática de
Más detallesProcesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
Más detallesTEMA 2 Estructuras de datos lineales
TEMA 2 Estructuras de datos lineales 1 Objetivos Conocer la especificación algebraica de las principales estructuras de datos lineales: Lista, pila y cola Conocer diferentes alternativas sobre el diseño
Más detallesFrancisco J. Hernández López
Francisco J. Hernández López fcoj23@cimat.mx Contenedores que asocian claves con valores mediante un procedimiento conocido como hash o hashing Clave k A32641 O(1) Índice Clave Valor 0 A12456 Adrián Gordillo
Más detallesProcesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
Más detallesExamen de Estructuras de Datos y Algoritmos. (Modelo 2)
Examen de Estructuras de Datos y Algoritmos (Modelo 2) 17 de junio de 2009 1. Se dispone de una tabla hash de tamaño 12 con direccionamiento abierto y sondeo cuadrático. Utilizando como función hash la
Más detallesExamen de Estructuras de Datos y Algoritmos. (Modelo 1)
Examen de Estructuras de Datos y Algoritmos (Modelo 1) 17 de junio de 2009 1. Qué rotación se necesita para transformar el árbol de la figura en un árbol AVL? a) Rotación simple izquierda-izquierda b)
Más detallesArchivos Indice. Indexación y. Asociación. Conceptos Básicos Indices Ordenados Arboles. Asociación. Docente: Albert A.
Docente: Albert A. Osiris Sofía 1º Cuatrimestre 2002 Conceptos Básicos Indices Ordenados Arboles Asociación Indexación y Asociación Archivos Indice 1 2 3 1 Archivos Indice Ordenados Asociativos Primario
Más detallesFICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.
FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 4. Técnicas de Dispersión. Definición y Manejo. 1.- Introducción. 2.- Funciones de Dispersión. 3.- Saturación Progresiva. 4.- Empaquetado
Más detalleslocalizar de un dato con un acceso directo y en una sola comparación de la llave. HASH
HASH Un conjunto es una colección de objetos, los cuales no necesariamente tienen relación entre sí, como de orden, descendencia, etc.; tampoco están obligados a compartir atributos. En el área computacional,
Más detallesEl nivel Interno. Índice Tema 3
El nivel Interno Índice Tema 3 iel nivel Interno...1 Introducción...2 Etapas de acceso a la base de datos...2 Gestor de Disco...3 Gestor de Ficheros...3 Agrupamiento...4 Interactivos...4 Entrearchivos...4
Más detallesÁrboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)
Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)
Más detallesIndexación y Asociación
Bases de Datos Indexación y Asociación Contenidos Conceptos básicos Indices Ordenados Árboles B+ ArbolesB Asociación estática Bases de Datos Indexación y Asociación 2 Conceptos básicos Los Indices se utilizan
Más detallesSOLUCIÓN EJERCICIOS DE UTILIZACIÓN DE TIPOS ABSTRACTOS DE DATOS
SOLUCIÓN EJERCICIOS DE UTILIZACIÓN DE TIPOS ABSTRACTOS DE DATOS 1. El juego pasiegos vs zombies. (1) Especificar que atributos contendrían las clases Zombie y Pasiego resaltando los invariantes que deben
Más detallesTEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO
TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO 1. Introducción 2. Conceptos fundamentales de organizaciones de ficheros 3. Dispositivos de almacenamiento secundario 4. Ficheros desordenados
Más detallesAnálisis y Diseño de Algoritmos Tablas de Hash
Análisis y Diseño de Algoritmos Tablas de Hash Guillermo Morales-Luna Arturo Díaz Pérez CONTENIDO 1. Dispersión 2. Funciones de dispersión (a) Método de división (b) Método de multiplicación 3. Direccionamiento
Más detallesTema 6. Ordenación, búsqueda e intercalación interna
Fundamentos de Programación I Tema 6. Ordenación, búsqueda e intercalación interna Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de
Más detallesTEMA 4 El tipo conjunto
TEMA El tipo conjunto PROGRAMACIÓN Y ESTRUCTURAS DE DATOS Tipo conjunto. Definiciones generales. Diccionario.. Tabla de dispersión.. Trie.. Árboles de búsqueda digitales. Cola de prioridad.. Montículo..
Más detallesRegistros Un campo: Registro:
Agenda 1) 2) registros ordenados registros desordenado Agenda 3) Organización de. 4) desordenado Organización de. Un campo: es el elemento de datos básico. Un campo individual contiene un valor único.
Más detallesTEMA 3 TRANSFORMACIÓN DE CLAVES (HASHING)
TEMA 3 TRANSFORMACIÓN DE CLAVES (HASHING) o como encontrar, con el mínimo esfuerzo, una clave dada dentro de un conjunto de elementos. p-1- OBJETIVOS DE ESTE CAPITULO: Concepto de Hashing (Dispersión).
Más detallesEduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa
Estructura de Datos y de la Información Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa Laboratorio de Investigación y Desarrollo en Inteligencia Artificial Departamento de Computación
Más detallesPara archivos, existen las siguientes organizaciones:
2. ARCHIVOS Entendemos por estructura a la forma cómo están constituidos físicamente los archivos, y organización de archivos a la forma de administración de los archivos, en función de las relaciones
Más detallesUNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Más detallesEstructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Facultad de Informática Universidad de A Coruña Table of Contents Árboles binarios de búsqueda 1 Árboles binarios de búsqueda 2 Table of Contents Árboles
Más detallesEstructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010
Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del
Más detallesBloque III: Estructuras de datos no lineales
Bloque III: Estructuras de datos no lineales ESTRUCTURAS DE DATOS 1 Tema 6: Conjuntos ESTRUCTURAS DE DATOS 2 Conjuntos: contenidos Introducción Especificación algebraica del TAD TipoConjunto Implementaciones
Más detallesProgramación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????
Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir
Más detallesTema 2. Conjuntos y Diccionarios
y Diccionarios 2.1. Repaso del TAD Conjunto 2.2. Implementaciones básicas 2.3. El TAD Diccionario 2.4. Las tablas de dispersión 2.5. Relaciones muchos a muchos AED-I 1 2.1. Repaso del TAD conjunto Definiciones
Más detallesDiseño de Conjuntos y Diccionarios con Hashing
Diseño de Conjuntos y Diccionarios con Hashing Representación de Conjuntos y Diccionarios TAD Diccionario(clave, significado) Observadores básicos def?: dicc(clave, significado) bool obtener: clave c dicc(clave,
Más detallesEn las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores
Estructuras de Información... 1 En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores 1. Cuál de las siguientes afirmaciones es falsa: a. Un nodo es un objeto, un link es un
Más detallesAnálisis del caso promedio El plan:
Análisis del caso promedio El plan: Probabilidad Análisis probabilista Árboles binarios de búsqueda construidos aleatoriamente Tries, árboles digitales de búsqueda y Patricia Listas skip Árboles aleatorizados
Más detallesEstructura de Datos y de la Información
Universidad Rey Juan Carlos Curso 2009/10 Ingeniería Técnica en Informática de Gestión Estructura de Datos y de la Información Examen Final Junio 2010 Fecha: 24-6-2010 Soluciones Ejercicio 1. (Puntuación
Más detallesProfesor: José Miguel Rubio L.
Profesor: José Miguel Rubio L. Magíster en Ingeniería Informática Ingeniero Civil en Informática Licenciado en Ciencias de la Ingeniería Técnico en Programación Oficina: 3-20 e-mail 1: jose.rubio.l@ucv.cl
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: NOTA FINAL: Nota Practica (1 punto) + Nota Examen (9 punto) Es indispensable aprobar el examen (4,5 puntos) para aprobar la asignatura (5 puntos) La práctica es opcional Duración:
Más detallesTema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom
Tema 05: Tablas hash M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Tablas hash o de dispersión Función
Más detalles4. Pilas ESTRUCTURAS DE DATOS 1
4. Pilas Una Pila es una colección de elementos homogéneos dispuestos en orden tal que se recuperan en orden inverso a como se introdujeron. La extracción e inserción de elementos en la Pila se realiza
Más detallesTema 04: TAD Lista. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom
Tema 04: TAD Lista M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido TAD Lista Descripción del TAD Lista
Más detallesTRABAJO PRÁCTICO N 7 Mapeos, diccionarios, arboles binarios de búsqueda y tablas de dispersión
ESTRUCTURAS DE DATOS TRABAJO PRÁCTICO N 7 Mapeos, diccionarios, arboles binarios de búsqueda y tablas de dispersión Departamento de Ciencias e Ingeniería de la Computación - U.N.S. Segundo cuatrimestre
Más detallesTema 10: Árbol binario de búsqueda
Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de
Más detallesESTRUCTURAS DE ARBOLES Y HASHING
Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Bases de Datos Integrantes: Herrera, Manuel C.I. 17.171.090 Balladares, Edgar C.I. 17.631.176 ESTRUCTURAS
Más detallesEstructura de datos y de la información Boletín de problemas - Tema 10
Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico
Más detallesEstructuras de Datos II
Estructuras de Datos II Segundo Parcial Los árboles B+ son estructuras de datos jerárquicas que se utilizan para almacenar y manipular datos ordenados de forma muy eficiente, ya que por su estructura y
Más detallesTema 1. Ordenación, búsqueda e intercalación interna
Fundamentos de Programación II Tema 1. Ordenación, búsqueda e intercalación interna Luis Rodríguez Baena (luis.rodriguez@upsam.es) Universidad Pontificia de Salamanca Escuela Superior de Ingeniería y Arquitectura
Más detallesAlmacenamiento y Recuperación de la Información
Almacenamiento y Recuperación de la Información Técnicas de Indexación Indices Dinámicos do Semestre 5 Wenceslao Palma M. www.inf.utfsm.cl/~wpalma/ari Indices Dinámicos Indices tipo
Más detallesAbelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.
Arquitectura de sistemas Abelardo Pardo University of Sydney School of Electrical and Information Engineering NSW, 2006, Australia Autor principal del curso de 2009 a 2012 Iria Estévez Ayres Damaris Fuentes
Más detallesEstructuras de Datos. 8.6 Árboles B. Supongamos que los nodos de un árbol deben ser guardados en un medio de almacenamiento secundario (disco).
132 El grado de ocupación de una tabla hash se determina mediante el factor de carga, que es la fracción ocupada de la tabla y es un número que está entre 0 y 1 si está vacía o llena respectivamente. Ejercicio:
Más detallesProgramación TADs Colecciones Conjuntos, Diccionarios y Tablas
Programación 2 8 - TADs Colecciones Conjuntos, Diccionarios y Tablas 1 El TAD SET (Conjunto) En el diseño de algoritmos, la noción de conjunto es usada como base para la formulación de tipos de datos abstractos
Más detallesEstructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Prof. Dr. P. Javier Herrera Contenido 1 Conceptos básicos de grafos y su especificación algebraica 2 Algoritmos de ordenación 3 Algoritmos de búsqueda 2 1. Grafos Estructuras
Más detallesESTRUCTURAS DE DATOS Y ALGORITMOS
ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno
Más detallesUNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Más detallesLaboratorio de Estructuras de Datos II
Laboratorio de Estructuras de Datos II Segundo examen parcial Fecha límite de entrega: Jueves 19 de noviembre de 2009, 3:59:59 p.m. Los árboles B son estructuras de datos jerárquicas que se utilizan para
Más detallesEspecialista en Abstracción y Estructura de datos en C++
Especialista en Abstracción y Estructura de datos en C++ titulación de formación continua bonificada expedida por el instituto europeo de estudios empresariales Especialista en Abstracción y Estructura
Más detallesFICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 3. Estructuras de Almacenamiento. Básicas. Definición y Manejo.
FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 3. Estructuras de Almacenamiento Básicas. Definición y Manejo. 1.- Búsqueda de Información. Definición de Clave. 2.- Definición y Manejo
Más detallesTema 10. Indexación y asociación
Tema 10. Indexación y asociación Juan Ignacio Rodríguez de León Resumen Conceptos básicos. Índices ordenados. Archivos de índices de árbol B+. Archivos de índices de árbol B. Asociación estática. Asociación
Más detallesANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesProgramación de sistemas Listas enlazadas
Programación de sistemas Listas enlazadas Departamento de Ingeniería Telemática 1 Contenidos *** Introducción a los genéricos Estructuras de datos Listas enlazadas La clase Node La clase LinkedList Ventajas
Más detallesESTRUCTURAS DE DATOS TEORÍA 2016/2017 PILAS
ESTRUCTURAS DE DATOS TEORÍA 2016/2017 PILAS 1 PILAS Una pila P es una estructura lineal tal que las inserciones, las consultas y las eliminaciones solo se permiten en un único punto. La pila puede no tener
Más detallesIndexación con lista enlazada
Indexación con lista enlazada Estructura de datos Roberto Maestre Martínez Diseño y arquitectura del sistema La nomenclatura utilizada es la siguiente. cvar Indica nombre de clase Var ovar Indica un objeto
Más detallesUNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Más detallesEstructura de Datos. Índice
TEMA 5. ÁRBOLES (I) 1 Índice 1. Concepto de árbol 2. Árboles binarios 1. Especificación informal del TAD árbol binario 2. Implementación del TAD árbol binario 3. Recorrido de un árbol binario 4. Árboles
Más detallesPRUEBA EVALUABLE ESTRUCTURAS DE DATOS PARTE I
PRUEBA EVALUABLE ESTRUCTURAS DE DATOS PARTE I 1. Explicar por qué la complejidad algorítmica se mide en órdenes (0.5 puntos). Un orden representa el conjunto de funciones que poseen un mismo ritmo de crecimiento.
Más detallesUNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS
UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo
Más detallesObjetivos. Conocer y saber utilizar diferentes tipos de datos. estructurados: cómo se definen. cómo están organizadas sus componentes
Objetivos Conocer y saber utilizar diferentes tipos de datos estructurados: cómo se definen cómo están organizadas sus componentes cómo se accede a ellas y sus operaciones y algoritmos básicos Tema: Estructuras
Más detallesINDICE. Prólogo de la Segunda Edición
INDICE Prólogo de la Segunda Edición XIII Capitulo 1. Algoritmos y Programas 1 1.1. Los sistemas de procesamiento de la información 2 1.2. Concepto de algoritmo 4 1.2.1. Características de los algoritmos
Más detallesTema 2. Conjuntos y Diccionarios.
Programa de teoría Parte I. Estructuras de Datos.. Abstracciones y especificaciones. 2. Conjuntos y diccionarios. 3. Representación de conjuntos mediante árboles. 4. Grafos. Parte II. Algorítmica.. Análisis
Más detallesAlgoritmos y Estructuras de Datos I Ejercicios. Tema 3. Árboles
3.1. Explicar por qué es necesario, en la representación de conjuntos mediante árboles trie, utilizar una marca de fin de palabra $ (puesto que podríamos hacer que las palabras del conjunto se correspondieran
Más detallesTEMA 7. ARRAYS (LISTAS Y TABLAS).
TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir
Más detallesProgramación de sistemas
Programación de sistemas Listas enlazadas Julio Villena Román MATERIALES BASADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, Jesús Arias Fisteus, Carlos Alario Hoyos
Más detallesÁrboles n-arios de búsqueda. Lección 16
Árboles n-arios de búsqueda Lección 16 Definiciones Los árboles n-arios de búsqueda (árboles de búsqueda múltiples o multicamino) son árboles de grado n definidos de la forma: si el árbol A es vacío, entonces
Más detallesDISEÑO FÍSICO DE UNA BASE DE DATOS EDWIN FERNANDO PACHECO FIGUEROA LICENCIATURA EN INFORMÁTICA UNIVERSIDAD DE NARIÑO
DISEÑO FÍSICO DE UNA BASE DE DATOS QUÉ ES UN DISEÑO FISICO DE BASE DE DATOS. "Diseño físico de la base de datos" es el proceso de selección de una estructura física para una estructura lógica dada. El
Más detallesExamen de Estructuras de Datos y Algoritmos (Ingeniería Informática)
Examen de Estructuras de Datos y Algoritmos (Ingeniería Informática) Primera parte (50% nota del examen) Septiembre 2009 1) Se desea hacer un método con la cabecera que se muestra abajo que cree y retorne
Más detallesWhite paper Hashing. Autor: Ramix (Ramiro A. Gómez) Sitio web: Fecha: 6 FEB Indice
White paper Hashing Autor: Ramix (Ramiro A. Gómez) Sitio web: www.peiper.com.ar Fecha: 6 FEB 2008 Indice Introducción... 1 Qué es el hashing?... 1 Funciones hash... 2 Colisiones... 3 Usos del hashing...
Más detallesEJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente:
ASIGNATURA TITULACIÓN APELLIDOS ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN EJERCICIO 1 (3 PUNTOS) GRUPO CURSO CONVOCATORIA NOMBRE 23 / 24 EXTRAORDINARIA- SEPTIEMBRE CALIFICACIÓN Dado el tipo abstracto de
Más detallesSegundo Parcial de Programación 2 7 de junio de 2017
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo
Más detallesTema 09: TAD Árbol binario
Tema 09: TAD Árbol binario M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Introducción El árbol binario
Más detallesClase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño
Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: 1. Ejercicio (3 puntos) a) Qué estructura de datos utilizarías para transformar la siguiente expresión a su equivalente expresión postfija? Argumenta tu decisión. Ej. entrada:
Más detallesAlgoritmos y Programación II Curso 2006
Arboles: Un árbol es una colección de elementos, llamados nodos, uno de los cuales se distingue con el nombre de raíz. Los nodos mantienen entre ellos una relación que define una estructura jerárquica
Más detallesOtras estructuras de datos
Otras estructuras de datos Programación de Sistemas de Telecomunicación Informática II GSyC Universidad Rey Juan Carlos Noviembre 2016 GSyC - 2016 Otras estructuras de datos 1 c 2016 Grupo de Sistemas
Más detallesTablas de Dispersión
Tablas de Dispersión Representación de datos especialmente diseñada para que las operaciones de acceso, inserción y borra por valor o campo clave sean eficientes (tiempo promedio constante, indepiente
Más detalles