José Luis Vergara Soberanis..   Una tabla hash requiere mucho menos espacio de almacenamiento si el conjunto K es mucho menos pequeño que el universo.

Slides:



Advertisements
Presentaciones similares
Tema 4 TRANSFORMADA Z..
Advertisements

Diseño y análisis de algoritmos
LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
III - Gestión de memoria
Ordenamiento Interno y Búsqueda Binaria
Funciones Matemáticas
Ciclos Repetitivos y Vectores en C Sharp
Método para resolver colisiones
Análisis Matemático III
PROGRAMACION DE ESTRUCTURAS DE DATOS
Representación en espacio de estado
Objetos de un programa Datos: Se denomina dato a toda aquella información característica de una entidad y que es susceptible de tratamiento en un programa.
Implementación de archivos
Windows XP sp3.
Teoría de lenguajes y compiladores
Ecuaciones diferenciales de 1er orden :
ORGANIZACIÓN RELATIVA ACCESO DIRECTO
METODO DE ORDENAMIENTO POR SELECCIÓN.
M.I.A Daniel Alejandro García López.  Primer componente: Arreglo de cubetas.- Es una arreglo A de tamaño N, en el que se puede considerar que cada celda.
Universidad de Tarapacá Fundamentos Lenguaje y Programación Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales.
Direcciones físicas y direcciones virtuales (lógicas)
02/12/2009 Elaborado por Juan Antonio Danilow Fragachan.
UNIVERSIDAD ALAS PERUANAS FACULTAD DE INGENIERIAS Y ARQUITECTURA FACULTAD DE INGENIERIAS Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERIAS DE SISTEMAS.
UNIDAD V Arreglos y Cadenas
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
DIVISIÓN DE POLINOMIOS 1
Estructuras de Datos Arreglos.
Clase 10: Estructuras de datos y arreglos.
Métodos de búsqueda Unidad 6.
Sistemas decimal, binario, octal y hexadecimal
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Tablas de Hash.
Administración de Memoria Memoria Virtual
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
(Organización y Manejo de Archivos)
Asignación de Espacio No Contiguo
Administración de Memoria
Almacenamiento y Recuperacion de Información- Arbol AVL
Material de apoyo Unidad 4 Estructura de datos
María Camila Torres Quiroz 10 informática 2 CEFA 2012
4.  Métodos matemáticos.
Operaciones con números complejos
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Análisis y Diseño de Algoritmos
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Introducción a la programación
Teoría de Sistemas Operativos Administración de Archivos.
1 Tablas HASH Agustín J. González ELO320: Estructura de Datos y Algoritmos.
Parte I. Estructuras de Datos.
1. 2 Problema Telemóviles, una gran companía de telefonía, requiere mejorar la capacidad de identificación del usuario que llama: –dado un número de usuario,
Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción
4° GRADO.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Teoría de lenguajes y compiladores
Presione aquí para continuar
3.2.1 Administración de almacenamiento
MIA - Grupo 5 Unidad 2.
ORDENAMIENTO DE DATOS Jorge Méndez Sánchez Eliúh Cuecuecha Hernández

Laboratorio de programación
MEMORIA DINÁMICA.
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
ALGUNAS IDEAS PARA EL TRABAJO CON LAS TABLAS. 0x3= 0 1x3= 3 2x3= 6 3x3= 9 4x3=12 5x3=15 6x3=18 7x3=21 8x3=24 9x3=27 10x3=30 A partir de los datos que.
El proceso ensamblador. José Luis Vergara Soberanis.
JANITH SULAY JAIMES PABON GIOVANNY JIMÉNEZ GÓMEZ JOHN ANDRES AYALA ANGARITA SERGIO ANDRES ARAQUE BERMUDEZ GESTIÓN DE ALMACENAMIENTO SECUNDARIO.
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
1 Tablas HASH Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem
ALGORITMO Y ESTRUCTURA DE DATOS II UNIDAD 3 ORDENAMIENTO Y BUSQUEDA MARCOS RODRIGUEZ /4/2019ALGORITMO Y ESTRUCTURA DE DATOS II 1 Prof.
Transcripción de la presentación:

José Luis Vergara Soberanis.

  Una tabla hash requiere mucho menos espacio de almacenamiento si el conjunto K es mucho menos pequeño que el universo.  Con direccionamiento directo, un elemento con llave k es almacenado en el slot k. Con hashing, el elemento es almacenado en el slot h(k); esto es, una función hash h es usada para encontrar el slot de la llave k. Tablas HASH

  Aquí h asigna las llaves del universo a los slots de una tabla hash  T[0::m - 1]:  h : U -> {0; 1; : : : ;m – 1}  Se dice que h(k) es el valor hash de la llave k. Tablas Hash (cont.)

  La idea de la función hash es reducir el rango de índices que necesitan ser manejados. En vez de U, se necesitan solo m valores.  El problema de esta idea es que dos llaves podrían ser asignadas al mismo slot lo que ocasiona una colisión. Sin embargo, para evitar este problema existen técnicas efectivas. Tablas hash (cont.)

  Para representar conjuntos dinámicos, se usa un arreglo o un tabla de direccionamiento directo T[0::m - 1], en la cual cada posición, corresponde a una llave en el universo de llaves U. Tablas de direccionamiento directo.

  Si el universo es grande, almacenar una tabla del tamaño del universo es difícil dada la capacidad de memoria.  El conjunto k de llaves puede ser pequeño comparado con el Universo que esto desperdiciaría mucha memoria. Desventajas de tabla de direccionamiento.

 Solución de colisiones con encadenamiento

  Inserta(T,x) =inserte x en la cabeza de la lista T[h(key[x])]  Search(T,k)=busque un elemento con llave k en la lista T[h(k)]  Delete(T,x)=borre x de la lista T[h(key[x])]  Desventaja: Puede ser que todas la llaves se asignen a la misma posición creando una lista del tamaño n. Operaciones en tablas hash

  Una buena función hash satisface(aproximadamente) la suposición de hashing uniforme simple.  Método de división.  Método de multiplicación. Funciones Hash

  En el método de la división para crear funciones hash, se asigna una llave “k” a uno de los m slots tomando el residuo de k divido por m.  La función hash es : h(k) = k mod m.  Por ejemplo, si la tabla hash tiene tamaño m = 12 y la llave es k = 100, entonces h(k) = 100 %12 = 4 Método de división

  Cuando se usa el método de la división, usualmente se evitan ciertos valores de m. Por ejemplo, m no debe ser una potencia de 2.  Buenos valores para m son números primos no cercanos a potencias de 2 exactas. Método de división (cont.)

  El método de la multiplicación para crear funciones hash opera en dos pasos.  1. Se multiplica la llave k por una constante A en el rango 0 < A < 1 y se extrae la parte fraccionaria de kA.  2. Se multiplica este valor por m y se toma el piso del resultado.  La función hash es : h(k) = bm(k A mod 1)c, Método de Multiplicación

  Aunque este método funciona para cualquier valor de A, se ha encontrado que función mejor con algunos valores.  Donald E. Knuth sugiere que A= (√5 - 1)/2 = 0: (2)  Como un ejemplo, si se tiene k = , m = 10000, y A es como en la ecuación 2, entonces h(k) = (123456*  % 1)  = 10000*( % 1)  = *  =  = 41.