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

Documentos relacionados
Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Francisco J. Hernández López

TEMA 3 TRANSFORMACIÓN DE CLAVES (HASHING)

Alonso Ramirez Manzanares Computación y Algoritmos 03.05

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria

Hashing (Funciones de Dispersión)

localizar de un dato con un acceso directo y en una sola comparación de la llave. HASH

Análisis y Diseño de Algoritmos Tablas de Hash

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.

Esquema básico de una Tabla de Dispersión

Archivos Indice. Indexación y. Asociación. Conceptos Básicos Indices Ordenados Arboles. Asociación. Docente: Albert A.

Tablas de Dispersión (Hashing Tables)

Examen de Estructuras de Datos y Algoritmos. (Modelo 2)

Examen de Estructuras de Datos y Algoritmos. (Modelo 1)

1. Características de la organización direccionada 2. Tipos de organización direccionada 3. Funciones de Transformación 4. Gestión de desbordamientos

Capítulo 3. Clasificación en Memoria Secundaria

Tablas de dispersión (hash tables)

Tema 6. Ordenación, búsqueda e intercalación interna

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez

Tema 1. Ordenación, búsqueda e intercalación interna

DISEÑO FÍSICO DE UNA BASE DE DATOS EDWIN FERNANDO PACHECO FIGUEROA LICENCIATURA EN INFORMÁTICA UNIVERSIDAD DE NARIÑO

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Registros Un campo: Registro:

Estructuras de Datos. 8.6 Árboles B. Supongamos que los nodos de un árbol deben ser guardados en un medio de almacenamiento secundario (disco).

Tablas Hash y árboles binarios

Capítulo 5. LISTAS. 5.1 Listas y listas vinculadas. Una lista es una colección lineal de elementos.

Tablas Asociativas (Hash) Tablas: filas & columnas de información Especificación algebraica

Para archivos, existen las siguientes organizaciones:

sumas = 58 = 48 = 73 = 59 =

Algoritmos y Estructuras de Datos Ingeniería en Informática

Lógica: Algoritmo: Archivo: Base de datos: Bit:

Diseño de Conjuntos y Diccionarios con Hashing

INDICE 1. Introducción: Archivos y Estructuras de Archivos 2. Operaciones Fundamentales para el Procesamiento de Archivos

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

Nombre de la asignatura : Administración de Archivos. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9323

Modelo Físico. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile andrea

02/02/2012. El objetivo de este tema es dar unas nociones básicas del fichero electrónico.

El nivel Interno. Índice Tema 3

BUSQUEDA SECUENCIAL Y DIRECTA, MARCELA MARQUEZ REBECA NAVARRO FONSECA GUADALUPE RUIZ ANGULO JONATHAN ALEXIS TOPETE ESTRUCTURA Y OPERACIONES

Estructuras de datos: Tablas de dispersión

UF5- Base de dades (Open Base) 34R/1I/1P-212

Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas

Tablas de Dispersión

ESTRUCTURAS DE ARBOLES Y HASHING

else ADD(DELET E(t, s), s 1, i)

Arreglos. Juan Pablo Cobá Juárez Pegueros Algoritmos y Programación Básica Bioingeniería Médica Facultad de Medicina 2015

Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

UNIDAD DE APRENDIZAJE I

Sistemas de Archivos. Unidad 2 Almacenamiento y Estructuras de Archivos

Estructuras Dinámicas de datos.

LibreOffice Calc II INTRODUCCIÓN A LAS TECNOLOGÍAS INFORMÁTICAS

Oracle Database 12c SQL and PLSQL Fundamentals

White paper Hashing. Autor: Ramix (Ramiro A. Gómez) Sitio web: Fecha: 6 FEB Indice

INDICE. Prólogo de la Segunda Edición

Base de Datos. Formularios. Consultas

Almacenamiento y Recuperación de la Información

Programación con C Intermedio

Otro algoritmo para la multiplicación

Conceptos básicos de bases de datos

Practica 03: Diccionario con hashing abierto

Computación Aplicada. Universidad de Las Américas. Aula virtual de Computación Aplicada. Módulo de Excel 2013 LIBRO 6

UNIVERSIDAD MODULAR ABIERTA FACULTAD DE CIENCIAS ECONOMICAS

CAPÍTULO 2 NÚMEROS PSEUDOALEATORIOS

Decrementa y vencerás II

TEMA 4 El tipo conjunto

PROGRAMACIÓN ESTRUCTURADA

UNIVERSIDAD DE GUADALAJARA

Uso de hash enfocadas en la búsqueda de datos y seguridad informática

FUNDAMENTOS NUMÉRICOS

IntServ 5. IDENTIFICACION DE FLUJOS. Jhon Jairo Padilla Aguilar Calidad del servicio en Internet

INSTITUCIÓN EDUCATIVA INSTITUTO AGRICOLA JORNADA DIURNA GUÍA DE TRABAJO # 5 AREA: MATEMÁTICAS AGISNATURA: ARITMÉTICA GRADO: SEXTO

Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

ASECOMPU. PORTAL DE REFUERZO ACADEMICO EN PROGRAMACIÓN LISTA DE EJERCICIOS. CICLOS REPETITIVOS Fecha de impresión:

Administración de Sistemas Gestores de Bases de Datos. Tema 5. Optimización y monitorización. Profesor: Juan Ignacio Contreras 1

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

Programación estructurada

Catedra de Base de Datos

Sistemas Operativos Tema 10. Sistema de archivos José Miguel Santos Alexis Quesada Francisco Santana Belén Esteban

ELECTRÓNICA DIGITAL. Area de Capacitación. Mg. Efraín H. Guevara

Sistemas Operativos Tema 4. Sistema de archivos

CELDA DE PRESIÓN DIFERENCIAL. Guía de Uso

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION

Base Bas de dato da s

2. CONTROL DE CIRCUITOS ELECTRÓNICOS COLEGIO MALVAR DPTO. CCNN Y TECNOLOGÍA 3º ESO

1. Título: Jugar sudoku

Estructura de Datos. Listas Enlazadas

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

Programa de estudios por competencias Seminario de solución de problemas de Estructura de Datos I

SÍLABO CURSO DE EXCEL PROFESIONAL. Al finalizar el curso los participantes estarán en capacidad de:

4. TABLAS. Una tabla esta ordenada, si las claves de información de los registros están ordenadas: k j < k j+1 (j=1,2,...)

Conocimientos previos

Unidad I: Introducción a las estructuras de datos

Transcripción:

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 una lista de personas podríamos querer saber si cierta persona está ingresada, o saber información acerca de la misma. Para estos casos en que queremos realizar consultas sobre la estructura de datos puede ser útil trabajar con una estructura de datos que permita realizar búsquedas rápidas (de orden pequeño).

DISPERSIÓN: Es transformar una llave K en una dirección, la cual se usa como base para buscar y para almacenar registros. ÍNDICE: Es una estructura de datos que permite recuperar las filas de una tabla de una forma más rápida, además de proporcionar una ordenación distinta a la de la tabla.se define sobre una columna o sobre un grupo de columnas, y las filas se ordenarán según los valores contenidos en esas columnas. INDEXAMIENTO:Es hacer un índice en donde puedas buscar más rápido y te referencie en que pagina esta la información que buscas sin tener que leer todo. FUNCIÓN DE DISPERSIÓN:Es la elección de una clave para el funcionamiento de una estructura. FUNCIÓN HASH: Se le llama así al cálculo que se realiza para obtener una dirección a partir de una llave. MÉTODO HASH: Nos permite encontrar directamente el registro buscado.

Son estructuras usadas para manejar una secuencia de elementos donde cada elemento tendrá un valor clave que pertenece a un rango de valores. Tiene como finalidad buscar,insertar o eliminar un registro complejo, donde su forma de organizar será mediante índices y campos llave. Permiten el acceso directo a un elemento de una secuencia indicando la posición que ocupa.

Lo básico de este método es aplicar una función. Es la técnica usada para resolver el problema de las colisiones ya que se dan al aplicar la función. Las funciones hash más comunes son: -Residuo de la división -Medio del cuadrado -Pliegue

Ventajas Se pueden usar los valores naturales de la llave, puesto que se traducen internamente a direcciones fáciles de localizar Se logra independencia lógica y física, debido a que los valores de las llaves son independientes del espacio de direcciones No se requiere almacenamiento adicional para los índices. Desventajas No pueden usarse registros de longitud variable No permite llaves repetidas El archivo no está clasificado Solo permite acceso por una sola llave Costos Tiempo de procesamiento requerido para la aplicación de la función hash Tiempo de procesamiento y los accesos E/S requeridos para solucionar las colisiones. La eficiencia de una función hash depende de: La distribución de los valores de llave que realmente se usan. El número de valores de llave que realmente están en uso con respecto al tamaño del espacio de direcciones El número de registros que pueden almacenarse en una dirección dad sin causar una colisión

Éstas básicamente transforman las claves en direcciones de la tabla. La implementación de la función hash depende del tipo de clave. Tomando en cuenta las direcciones hash hay que dividir en dos partes, en las búsquedas de funciones y en la resolución de colisiones.

Funciones: -Aritmética modular -Plegamiento -Mitad del cuadrado -Multiplicación

Una colisión de hash: Es una situación que se produce cuando dos entradas distintas a una función de hash producen la misma salida.

Encadenamiento Direccionamiento Abierto -Exploración Lineal -Búsqueda Cuadrática -Hashin Doble -Re-Hashing -Exploración de direcciones -Arreglos Anidados -Hashing Abierto

Consiste en tomar el residuo de la división de la clave entre el número de componentes del arreglo.

Consiste en dividir la clave en partes de igual número de dígitos (la última puede tener menos dígitos) y operar con ellas, tomando como dirección los dígitos menos significativos. La operación entre las partes puede hacerse por medio de sumas o multiplicaciones.

Consiste en elevar al cuadrado la clave y tomar los dígitos centrales como dirección. Número de dígitos a tomar queda determinado por el rango del índice.

Este método opera en dos pasos. Primero, multiplicamos la clave por una constante A en el rango 0 < A < 1 y extraemos la parte fraccionaria de k*a. Segundo, Multiplicamos este valor por el número de entradas de la tabla y tomamos el piso del resultado.

Consiste en que cada elemento del arreglo tenga un apuntador a una lista ligada, la cual se irá generando e irá almacenando los valores colisionados a medida que se requiera.

Consiste en que una vez detectada la colisión se debe generar otra dirección aplicando la función hash a la dirección previamente obtenida. El proceso se detiene cuando el elemento es hallado, o bien cuando se encuentra una posición vacía.

Método que consiste en que cada elemento del arreglo contenga otro arreglo donde se almacenarán los elementos colisionados. Sencilla Ineficiente Costo de Memoria Tiene valor asignado ya que se manejan arreglos lo cual contrae problemas para poder solucionar la colisión. Cuando se elige el tamaño del arreglo permite equilibrar el espacio para almacenar en memoria y el número de valores colisionados que se pudieran almacenar. Cuando el cubo se llena Trataremos de nuevo con colisiones.

Prueba lineal La función es: h(k,i) = (h (k) +i) mod m Una desventaja de este método es la tendencia a crear largas secuencias de entradas ocupadas

Hashing abierto: En hashing abierto la búsqueda no exitosa de una clave toma tiempo Q(1+a), donde a es el factor de carga =número de claves en la tabla/número de entradas en la tabla hash.

En Hashing cerrado: Todos los elementos o claves son almacenadas en la tabla hashing misma. Es decir, cada entrada de la tabla contiene un elemento del conjunto dinámico o NULL. Dentro de este se encuentra la exploraciòn de direcciones, metodo que consiste en buscar de un lugar a la vez en la tabla un lugar vacio.

Hashing Cuadrático Consiste en elevar al cuadrado iniciando desde el primer espacio hasta encontrar un lugar disponible La desventaja es que no vicita todas las celdas.

http://foro.elhacker.net/criptografia/funciones_de_hash-t100025.0.html http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r61233.pdf http://www.wanderingbit.com/2008/12/27/hash-tablas-de-dispersion/ http://www.ganimides.ucm.cl/haraya/doc/tablas_de_dispersion.pdf https://www.google.com.mx/#hl=es&sclient=psyab&q=videos+funciones+hash&oq=videos+funciones+hash&aq=f&aqi=&aql= &gs_l=serp.3...4345.6763.1.7016.15.12.0.3.3.0.190.1720.0j12.12.0...0.0. CVyBxjDmcoI&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&fp=8a3157 2b0cce3f18&biw=1280&bih=699 Libro de estructura de Archivos http://www.aulaclic.es/access2002/a_5_1_3.htm