Hashing (Funciones de Dispersión)

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Hashing (Funciones de Dispersión)"

Transcripción

1 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 registros con muy pocos accesos en promedio, al disco. La idea general hashing es colocar, en la forma menos relacionada posible, la información entregada por los elementos, de manera tal que su acceso sea eficiente y exista una adecuada repartición de los mismos a lo largo de todo el espacio de almacenamiento. Desventajas: No se pueden usar registros de longitud variable. No puede haber orden físico de datos. No permite llaves duplicadas. Hashing La tabla hash Se necesita un mecanismo de acceso a registros sólo con una lectura. Visto hasta ahora: Secuencia: n/ accesos en promedio Ordenado: log n Arboles: o accesos La representación de conjuntos o diccionarios con listas o arrays tiene un tiempo de O(n), para Insertar, Suprimir y Pertenece. Con vectores de bits el tiempo es O(cte), pero tiene muchas limitaciones. Cómo aprovechar lo mejor de uno y otro tipo? Idea: Usar un array con B posiciones (,..., B-). Dada una clave x calcular una posición mediante una función: h(x) = posición en (.. B-) h: Función de hashing El elemento (x, v) se inserta en esa posición..... B- Hashing algunas definiciones Técnica para generar una dirección base para una llave dada. Técnica que convierte la llave registro en un número aleatorio, el que sirve después para determinar dónde se almacena el registro. Técnica de almacenamiento y recuperación que usa una función de hash para mapear registros en una dirección de almacenamiento. La tabla hash Para buscar el elemento con clave x, aplicar la función h(x) y buscar en la posición correspondiente. Ejemplo: Si x de tipo entero h(x) = x módulo B Si x de tipo cadena h(x) = (suma de códigos ascii (x)) mod B

2 La tabla hash Hashing abierto En promedio se necesita un tiempo constante O(cte): aplicar h(x) y acceder a esa posición. M - Tabla de encabezados de celdas o cubetas Listas de elementos de cada celda La tabla hash El tipo de x no está restringido. Si es un registro, se puede tomar uno de sus campos como clave, y aplicar la función sobre él. Función de hashing: h: Clave [,..., B-] Tamaño de la tabla B: aproximadamente mayor que el número de elementos normalmente, B << rango de claves Hashing abierto typedef Lista_asociacion TablaHash[B-]; La tabla hashing está formada por B cubetas. Dentro de cada cubeta se encuentran los elementos sinónimos (con igual de h). El conjunto de sinónimos es llamado clase. La tabla hash Qué ocurre si para dos elementos distintos x, y, h(x) = h(y)? Definición: Si (x y) (h(x) = h(y)) entonces se dice que x, y son sinónimos. Los distintos métodos de hashing difieren en el tratamiento de los sinónimos. Existen dos tipos de hashing, que se distinguen por las formas de almacenar los elementos:. Abierto o externo: permite manejar almacenar los conjuntos en un espacio potencialmente ilimitado (tamaños arbitrarios). Cerrado o interno: usa un espacio fijo para almacenamiento, limitando así el tamaño de los conjuntos. Hashing cerrado En esta clase de hashing sólo existe la estructura de las celdas o la tabla, donde deben almacenarse todos los elementos conjunto o diccionario, en vez de usarse como encabezados de listas. y h celda ocupada Celdas alternativas h(x) Situación de colisión en hashing cerrado o interno x

3 Hashing cerrado typedef AsociacionTablaHash[B-] Si al insertar un elemento nuevo x, ya está ocupado h(x), se dice que ocurre una colisión. En este caso será necesario hacer rehashing: buscar una nueva posición para almacenar el elemento. Hashing cerrado Qué ocurre con la eliminación de elementos? Se necesita una marca especial suprimido, que indique la posición de un elemento borrado. En la función Miembro, se sigue la búsqueda hasta llegar a un suprimido. En Inserta el espacio de ese elemento se puede utilizar (como si fuera vacío). Problema rehashing lineal: Si se llenan varias cubetas consecutivas y hay una colisión, se debe consultar todo el grupo. Aumenta el tamaño de este grupo, haciendo que las inserciones y búsquedas sean más lentas. Hashing cerrado estrategias de reubicación (rehashing) Consiste en explorar posiciones alternativas: h (y), h (y), h (y), h (y),... Dichas posiciones se buscan en orden hasta hallar un espacio vacío donde almacenar el elemento (o bien hasta agotar el espacio disponible, si la tabla está llena). Rehashing: Si falla h(x), aplicar h (x), h (x),... hasta encontrar una posición libre. Rehashing: h i (x)= (h(x) + i) mod B La secuencia de posiciones recorridas para un elemento se suele denominar cadena o secuencia de búsqueda. Funciones Hashing Propiedades de una buena función de hashing La función debe minimizar el número de colisiones: debe ser lo más aleatoria posible y repartir los elementos en la tabla de manera uniforme. La función debe ser fácil de calcular (se busca eficiencia). Ojo: h(x) es función de x, devuelve siempre el mismo para un mismo de x. Hashing cerrado Miembro (x, D): Examinar la posición h(x). Si x está en la posición h(x) entonces devolver Verdad (ó Tabla[h(x)].). Si está vacía entonces no es miembro, devolver Falso. En otro caso, la posición está ocupada pero por otro elemento. Se deben examinar las posiciones h (x), h (x),... y así sucesivamente hasta encontrar x, vacío ó examinar toda la tabla. hash(tipodato llave, int #max) { int sum =; int j = ; while (j < #elementos de llave) { sum = sum + * llave[j] + llave[j+]; j = j + ; } return sum mod #max; }

4 Multiplicación. Dada una clave x entera: h(x) = (x * C) mod B; para algún C, con C y B primos entre sí Dígitos centrales: h(x) = x / mod B Escoger un C, tal que BC K, para x en el intervalo (,..., K). h(x)= (x / C) mod B Ejemplo: K = ; B = ; C =; h() = Otro posible método: h(x) = ( C*x / C + x*c) mod B Plegado o folding: Con cadenas. Agrupar caracteres de n en n: Cada carácter es un número en el intervalo.. Se suman los es de los grupos. Ejemplo: x = abcdefgh h(x)=( a+ b +c + d + e + f + g+h) mod B Con reales. Agrupar dígitos decimales de n en n: Ejemplo: h(x) = ((x * ) + (x * ) + (x * ) +... ) mod B Otro ejemplo con reales: h(x) = Frac (x) * B Centros cuadrados: la llave se multiplica por sí misma, tomando los dígitos centrales al cuadrado; posteriormente se ajusta al espacio disponible. División: la clave se divide por un número aproximadamente igual al número de direcciones (número primo, pues tiende a distribuir residuos en forma más eficiente). Desplazamiento: los dígitos externos de ambos extremos se corren hacia adentro, se suman y se ajusta al espacio disponible. Análisis de dígitos: analizan las claves para eliminar posibles repeticiones en la misma. Cuál usar? tomar algunas claves o llaves problema, simular el comportamiento con algunos métodos y se toma el que mejor se comporta. En general: Método de la división es mejor Método plegado para claves muy largas Conversión de raíz: la base número se modifica y en la serie de dígitos resultante, se suprimen los dígitos de orden mayor. División polinómica: cada dígito clave se toma como coeficiente de polinomio, se divide por un polinomio fijo, coeficiente resto se toma como dirección. Con cadenas. Suma de códigos ASCII: suma = ; para i = hasta longitud(x) hacer suma = suma + ord(x[i]); devolver (suma mod B); Tratamiento de Colisiones Es posible reducir el % de overflow, pero el problema se mantiene dado que no se llega al %. Existen dos métodos principales de rehashing:. prueba lineal. doble hashing

5 Tratamiento de Colisiones Tratamiento de Colisiones Prueba lineal o secuencial Si la función de hashing de un elemento apunta al índice i, pero en esa posición ya existe otro elemento, se trata de verificar las posiciones inmediatamente siguientes: i+, i+, i+,..., hasta encontrar una posición vacía (en secuencia). Si se llegó al final de la tabla continuar buscando al principio (posición ): H(x,) = h(x) H(x,p+) = H(x,p) + mod M Doble hashing x y z h(z) h(y) h(x) celda ocupada H(x,) + h (y) + h (z) H(x,) H(y,) H(x,) H(z,) H(y,) Situación de colisiones múltiples resuelta con doble hashing Tratamiento de Colisiones Obviamente el número máximo de pruebas es M-, de lo contrario se empieza a repetir la búsqueda ( p < M). Esta técnica es muy fácil de implementar y tiene un comportamiento satisfactorio cuando la tabla no está muy llena. x h(x) H(x,) H(x,) H(x,)... celda ocupada Celdas alternativas Problema: agrupamiento primario: una vez que un bloque de posiciones consecutivas aparece ocupada en la tabla se transforma en un blanco para colisiones subsecuentes. Eso va produciendo bloques ocupados cada vez más grandes y más fáciles de hacer blanco de colisiones. Funciones re-hashing Estrategias de rehashing (para hashing cerrado): Intervalos constantes mayores que : h i (x) = (h(x) + C*i) mod B; para algún C > Ejemplo: B =, C =, h(x) =, se buscaría en:,,,,,,, B y C deben ser primos entre sí, para buscar en todas las posiciones. No se soluciona el problema, ya que se crean grupos a saltos de C. Tratamiento de Colisiones Doble hashing Consiste en usar una segunda función de hashing h cuyos es son independientes hashing primario. Este nuevo se agrega a la posición hallada en caso de colisión, y así sucesivamente hasta resolver el problema de posicionamiento: H(x,) = h(x) H(x,p+) = (H(x,p) + h (x)) mod M Funciones re-hashing Permutaciones aleatorias: h i (x) = (h(x) + D i ) mod B; para D i = (D, D,...) una permutación de,,..., B- La permutación se fija de antemano. Se soluciona el problema para determinadas permutaciones D i.

6 Funciones re-hashing Método para obtener una permutación: Sea B una potencia de. Se toma una constante K, en el intervalo (,..., B-). Empezamos con un cualquiera D= D i D i+ = *D i Si D i+ > B Resta = D i+ -B; D i+ = Resta K; D i = (,,,,,,,,...) {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... Número Insertado : Función hash: h() + = ==> no hay conflicto Funciones re-hashing Ejemplo: B = ; K = = b ; D = = b {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... Di* Resta Resta D D D D D D D D Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = ==> no hay conflicto Insertar en una tabla hash de tamaño, las claves:,,,,,,,,,, con los métodos : hash lineal, hash cuadrático, hash encadenado h(x) = x mod la función hash usa el último dígito en la representación decimal de la llave. Contar el número de comparaciones necesarias para cada operación. {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = ==> no hay conflicto Tabla inicial:

7 {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... Número Insertado: Función hash: h() + = ==> no hay conflicto Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = ==> no hay conflicto {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = (vuelve a ) ==> no hay conflicto {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = () ==> hay conflicto Función hash: h() + = () ==> hay conflicto Función hash: h() + = () ==> hay conflicto Función hash: h() + = () ==> no hay conflicto {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = ==> no hay conflicto {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... Número Insertado: Función hash: h() + = ==> conflicto Función hash: h() + = ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> no hay conflicto

8 {,,,,,,,,, } Hash lineal: h(x) = x mod + i; i =,,... Número Insertado: Función hash: h() + = ==> conflicto Función hash: h() + = ==> conflicto Función hash: h() + = ==> conflicto Función hash: h() + = ==> conflicto Función hash: h() + = ==> no conflicto {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = ==> no hay conflicto Total Número de Pruebas: {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado : Función hash: h() + = ==> no hay conflicto {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado: Función hash: h() + = ==> no hay conflicto {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = ==> no hay conflicto {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = (vuelve a ) ==> no hay conflicto

9 {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = ==> no hay conflicto {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado: Función hash: h() + = ==> conflicto Función hash: h() + = ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto Función hash: h() + = () ==> conflicto No importa cuánto tiempo se busque, no se encontrará un lugar! {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = ==> no hay conflicto {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado: Función hash: h() + = ==> conflicto Función hash: h() + = ==> conflicto Función hash: h() + = ==> no hay conflicto Total Número de Pruebas: (excluyendo la búsqueda fallada para el ) Cuando se insertó el, nunca se examinaron las dos celdas disponibles, y. Nota: para que toda la tabla sea investigada el factor de carga tiene que ser mayor que, y el tamaño de la tabla tiene que ser primero. {,,,,,,,,, } Método cuadrático: h(x) = x mod + i; i =,,,... Número Insertado: Función hash: h() + = ==> hay conflicto Función hash: h() + = () ==> hay conflicto Función hash: h() + = () ==> no hay conflicto {,,,,,,,,, } Hash encadenado separado: La tabla de encadenamiento separada agrega a una lista enlazada cuando ocurre una colisión. El resultado final se parece a : -> -> ->

10 El número de búsqueda en una lista enlazada es: Valor Insertado Compariciones Total : Eliminar las claves,, y desde la tabla hash: Hash lineal: Eliminar : h() + = ==> no se encuentra h() + = () ==> encontrado Total Número de pruebas: Eliminar las claves,, y desde la tabla hash: Eliminar las claves,, y desde la tabla hash: Hash lineal: Eliminar : h() + = ==> Eliminado ==> continuar la búsqueda h() + = () ==> Eliminado h() + = () ==> No encontrado h() + = () ==> No encontrado h() + = () ==> Encontrado Total Número de pruebas: Eliminar las claves,, y desde la tabla hash: Eliminar las claves,, y desde la tabla hash: Hash lineal: Eliminar : h() + = ==> no se encuentra h() + = ==> encontrado Total Número de pruebas: Método Cuadrático : Eliminar : h() + = ==> No encontrado h() + = ==> Encontrado Total Número de Pruebas :

11 Eliminar las claves,, y desde la tabla hash: Eliminar las claves,, y desde la tabla hash: -> -> -> Método Cuadrático : Eliminar : h() + = ==> eliminado h() + = () ==> encontrado Total Número de Pruebas : Método encadenado separado: Eliminar : Valor : Comparaciones : -> Eliminar las claves,, y desde la tabla hash: Eliminar las claves,, y desde la tabla hash: -> -> -> Método Cuadrático : Eliminar : h() + = ==> Eliminado h() + = () ==> Eliminado h() + = ( ) ==> Encontrado Total Número de Pruebas : Método encadenado separado: Eliminar : Valor : Comparaciones : -> Eliminar las claves,, y desde la tabla hash: Método encadenado separado: Eliminar : Valor : Comparaciones : -> -> -> Referencias bibliográficas Estructura de Datos y Algoritmos. Aho, Hopcroft, Ullman. Addison-Wesley Iberoamericana. García Mateos, A.A.E.D. Apuntes de la UNLP Facultad de Informática. -> ->

Tema 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 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 detalles

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

Estructura 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 detalles

Alonso Ramirez Manzanares Computación y Algoritmos 03.05

Alonso 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 detalles

Tablas de Dispersión (Hashing Tables)

Tablas 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 detalles

TEMA 3 TRANSFORMACIÓN DE CLAVES (HASHING)

TEMA 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 detalles

Estructuras de datos: Tablas de dispersión

Estructuras 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 detalles

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios

Algoritmos 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 detalles

Capítulo 3. Clasificación en Memoria Secundaria

Capí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 detalles

Tablas de dispersión (hash tables)

Tablas 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 detalles

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

Algoritmos 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 detalles

Esquema básico de una Tabla de Dispersión

Esquema 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 detalles

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

Aná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 detalles

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

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 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 detalles

FICHEROS 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. 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 detalles

Tema 2. Conjuntos y Diccionarios

Tema 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 detalles

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

Programació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 detalles

Programa de teoría. AED I. Estructuras de Datos. 2. Conjuntos y diccionarios. AED II. Algorítmica. 1. Abstracciones y especificaciones

Programa de teoría. AED I. Estructuras de Datos. 2. Conjuntos y diccionarios. AED II. Algorítmica. 1. Abstracciones y especificaciones Programa de teoría AED I. Estructuras de Datos 1. Abstracciones y especificaciones 2. Conjuntos y diccionarios 3. Representación de conjuntos mediante árboles 4. Grafos 1. Análisis de algoritmos 2. Divide

Más detalles

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

localizar 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 detalles

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

Tabla 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 detalles

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

Tabla 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 detalles

Tema 2. Conjuntos y Diccionarios.

Tema 2. Conjuntos y Diccionarios. Programa de teoría AED I. Estructuras de Datos. 1. Abstracciones y especificaciones. 2. Conjuntos y diccionarios. 3. Representación de conjuntos mediante árboles. 4. Grafos. AED II. Algorítmica. 1. Análisis

Más detalles

Tema 2. Conjuntos y Diccionarios.

Tema 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 detalles

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

Tablas Asociativas (Hash) Tablas: filas & columnas de información Especificación algebraica 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,

Más detalles

Francisco J. Hernández López

Francisco 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 detalles

Registros Un campo: Registro:

Registros 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 detalles

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Estructura 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 detalles

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

Archivos 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 detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores 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 detalles

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

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: 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

Tablas (Diccionarios). Modelo matemático

Tablas (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 detalles

TEMA 4 El tipo conjunto

TEMA 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 detalles

Tema 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 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 detalles

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

Tema 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 detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores 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 detalles

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

Estructuras 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 detalles

Lista Simple con Puntero al Principio y Puntero al Final

Lista Simple con Puntero al Principio y Puntero al Final Unidad 3 Estructuras de Datos Avanzadas Introducción Hasta el momento se estudiaron las siguientes estructuras estáticas y dinámicas básicas para representar diferentes colecciones de elementos: Arreglo

Más detalles

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

Modelo Físico. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile  andrea Bases de Modelo Físico M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl de un solo II Semestre - 2014 Bases de de un solo de un solo Bases de Objetivos de la Unidad Entender

Más detalles

FICHEROS 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. 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 detalles

El 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 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 detalles

Tema 10: Árbol binario de búsqueda

Tema 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 detalles

Estructura de Datos Árboles Árboles 2-3

Estructura de Datos Árboles Árboles 2-3 Estructura de Datos Árboles 1-2-3 Árboles 2-3 Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2010 1 Arboles 1-2-3 Árbol n-ario ordenado de orden 3 Cada nodo tiene 1 ó 2 elementos 75 Nodo

Más detalles

Estructura de datos Tema 6: Tablas de dispersión (hashing)

Estructura de datos Tema 6: Tablas de dispersión (hashing) Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash

Más detalles

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,...)

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,...) 4. TABLAS Las tablas son agregados de componentes individuales llamados registros. Los registros son una entidad con una colección de datos asociados con nombres para establecer el tipo de información.

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras 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 detalles

Algoritmos sobre Listas

Algoritmos sobre Listas TEMA 6 Algoritmos sobre Listas V1.1 Manuel Pereira González Agenda Introducción Algoritmos de Búsqueda Búsqueda Secuencial Búsqueda Binaria Análisis de Eficiencia Algoritmos de Inserción Algoritmos de

Más detalles

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

Tema 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 detalles

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

INDICE 1. Introducción: Archivos y Estructuras de Archivos 2. Operaciones Fundamentales para el Procesamiento de Archivos INDICE 1. Introducción: Archivos y Estructuras de Archivos 1.1. Almacenamiento primario y secundario 2 1.2. Nada es gratis 3 1.3. Archivos 5 1.4. Estructuras de archivos versus estructuras de datos 6 1.5.

Más detalles

ESTRUCTURAS DE ARBOLES Y HASHING

ESTRUCTURAS 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 detalles

Titulación: Grado en Ingeniería Informática Asignatura: Fundamentos de Computadores

Titulación: Grado en Ingeniería Informática Asignatura: Fundamentos de Computadores Titulación: Grado en Ingeniería Informática Asignatura: Fundamentos de Computadores Bloque 1: Introducción Tema 2: Sistema binario de representación numérica Pablo Huerta Pellitero ÍNDICE Bibliografía.

Más detalles

UNIDAD DE APRENDIZAJE I

UNIDAD DE APRENDIZAJE I UNIDAD DE APRENDIZAJE I Saberes procedimentales Interpreta y utiliza correctamente el lenguaje simbólico para el manejo de expresiones algebraicas. 2. Identifica operaciones básicas con expresiones algebraicas.

Más detalles

Algoritmos y Estructuras de Datos I Ejercicios. Tema 3. Árboles

Algoritmos 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 detalles

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS ESTRUCTURA DE ARCHIVOS

Más detalles

Tablas de Dispersión

Tablas 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

6. El TDA Lista Implementación con listas enlazadas. es de tipo genérico T. Pueden existir elementos repetidos (a diferencia de los conjuntos).

6. El TDA Lista Implementación con listas enlazadas. es de tipo genérico T. Pueden existir elementos repetidos (a diferencia de los conjuntos). 6. El TDA Lista 6.1. Definición 6.2. Operaciones del TDA 6.3. Implementación con vectores 6.4. Implementación con listas enlazadas 6.5. Comparativa Bibliografía: -Weiss - Aho, Hopcroft y Ullman 6.1. Definición

Más detalles

UNIVERSIDAD CATÓLICA DEL NORTE PROGRAMA DE ESTUDIOS IDENTIFICACIÓN DE LA ASIGNATURA. Nombre: Estructuras de Datos y Archivos

UNIVERSIDAD CATÓLICA DEL NORTE PROGRAMA DE ESTUDIOS IDENTIFICACIÓN DE LA ASIGNATURA. Nombre: Estructuras de Datos y Archivos 1 UNIVERSIDAD CATÓLICA DEL NORTE PROGRAMA DE ESTUDIOS IDENTIFICACIÓN DE LA ASIGNATURA Nombre: Estructuras de Datos y Archivos Código: CC- 672 Fecha Actualización: 30/07/2008 Unidad Responsable: Departamento

Más detalles

7. Agrupamiento (clustering)

7. Agrupamiento (clustering) 7. Agrupamiento (clustering) INMUEBLES y CONTRATOS I IA4 En medio, 8 Centro Castellón 600 C 004 Q6 600 Visa 00 S /6/99 /5/00 I IL94 Riu Ebre, 4 Ronda Sur Castellón 50 C 0075 Q76 50 Efectivo 700 N //00

Más detalles

Para archivos, existen las siguientes organizaciones:

Para 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 detalles

Estructuras de Datos II

Estructuras 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 detalles

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Diseño de algoritmos recursivos 1. Dado un vector de enteros de longitud N,

Más detalles

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Con relación a la Estructura LISTA Indicar objetos reales que se puedan modelar con dicha estructura. Listas de Ordenes de visitas

Más detalles

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

Examen 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 detalles

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

Examen 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 detalles

TAD CONJUNTOS Y MULTICONJUNTOS

TAD CONJUNTOS Y MULTICONJUNTOS TAD CONJUNTOS Y MULTICONJUNTOS INTRODUCCIÓN Qué es un conjunto? Un conjunto en matemática es una colección de objetos. Los objetos no mantienen ninguna relación aparente entre ellos y tampoco están obligados

Más detalles

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Á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 detalles

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES Capitulo 5. Arboles 1. Al recorrer el siguiente árbol en se visitan más nodos para llegar al número 38. Justifique su respuesta mostrando cada uno de los recorridos. Tipo de Recorrido Recorrido A) PREORDEN

Más detalles

Cursos Propedéuticos 2015

Cursos Propedéuticos 2015 Listas Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores http://ccc.inaoep.mx/~rcumplido/ Contenido de la sección Listas Principales operaciones Listas secuenciales vs Listas ligadas

Más detalles

Introducción a las tablas Hash (I)

Introducción a las tablas Hash (I) Introducción a las tablas Hash (I) Una tabla Hash es un contenedor asociativo (tipo Diccionario) que permite un almacenamiento y posterior recuperación eficientes de elementos (denominados valores) a partir

Más detalles

El nivel Interno. Índice Tema 3

El 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

Estructuras Dinámicas de datos.

Estructuras 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 detalles

Introducción. Tema 1. Fundamentos de informática. Universidad de Oviedo. Fundamentos de Informática. Departamento de Informática Universidad de Oviedo

Introducción. Tema 1. Fundamentos de informática. Universidad de Oviedo. Fundamentos de Informática. Departamento de Informática Universidad de Oviedo Tema 1 Introducción. Fundamentos de informática Departamento de Informática Universidad de Oviedo 1-1 1.1 Visión general de la informática 1.2 Estructura y funcionamiento de un ordenador 1.3 Representación

Más detalles

Estructura 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 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 detalles

Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria

Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Bibliografía: Elmasri y Navathe: Fundamentos de Sistemas de Bases de Datos 3ª edición, 2002 (Capítulo 6). Garcia-Molina, Ullman

Más detalles

Parte de Algoritmos, de la asignatura de Programación Máster de Bioinformática Cadenas y expresiones regulares

Parte de Algoritmos, de la asignatura de Programación Máster de Bioinformática Cadenas y expresiones regulares Parte de Algoritmos, de la asignatura de Programación Máster de Bioinformática Departamento de Informática y Sistemas Universidad de Murcia http://dis.um.es/ domingo/algbio.html domingo@um.es Contenido

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA 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 detalles

ÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas...

Í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 detalles

ANÁLISIS Y DISEÑO DE ALGORITMOS. PRACTICAS

ANÁLISIS Y DISEÑO DE ALGORITMOS. PRACTICAS ANÁLISIS Y DISEÑO DE ALGORITMOS. PRACTICAS 2004-2005 PRACTICA 1: MEDICIÓN DEL TIEMPO. ALGORITMOS DE ORDENACIÓN Crear un conjunto de funciones que permitan la medición del tiempo de ejecución de los programas,

Más detalles

ANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS

ANÁ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 detalles

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: Cuestionario Modulo 1.1 GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: 1001 0110. 2. qué es Dato? Definición: Es toda

Más detalles

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático v1.2 c 2005 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado

Más detalles

Práctica 5. Fecha límite de entrega: viernes, 14 de diciembre

Práctica 5. Fecha límite de entrega: viernes, 14 de diciembre Algoritmos http://www.lfcia.org/alg/ 2007-2008 Ingeniería Informática Ingeniería Técnica de Informática de Gestión Práctica 5 Fecha límite de entrega: viernes, 14 de diciembre Implementación de un Diccionario

Más detalles

TRABAJO PRÁCTICO N 7 Mapeos, diccionarios, arboles binarios de búsqueda y tablas de dispersión

TRABAJO 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 detalles

Programación de sistemas

Programació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

INDICE. Prólogo de la Segunda Edición

INDICE. 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 detalles

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas

Programació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 detalles

Árboles n-arios de búsqueda. Lección 16

Á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 detalles

Diseño de Conjuntos y Diccionarios con Hashing

Diseñ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 detalles

Árboles B y B ) 20. Algoritmos y Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 63

Árboles B y B ) 20. Algoritmos y Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 63 y B + 3.8 y B+! Problema de los ABB cuando se usa almacenamiento secundario:! la búsqueda de un elemento requeriría muchos accesos a disco (un acceso a disco es extremadamente lento si lo comparamos con

Más detalles

Indexación y Asociación

Indexació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 detalles

Métodos de Ordenamiento. Unidad VI: Estructura de datos

Métodos de Ordenamiento. Unidad VI: Estructura de datos Métodos de Ordenamiento Unidad VI: Estructura de datos Concepto de ordenación La ordenación de los datos consiste en disponer o clasificar un conjunto de datos (o una estructura) en algún determinado orden

Más detalles

8. Vectores (arrays)

8. Vectores (arrays) 8. Vectores (arrays) Fundamentos de Informática Especialidad de Electrónica 2009-2010 Ismael Etxeberria Agiriano 16/12/2009 Índice 8. Vectores (arrays) 1. Números aleatorios 2. Serie ordenada 3. Números

Más detalles

EXPOSICIÓN UNIDAD II

EXPOSICIÓN UNIDAD II SIMULACIÓN EQUIPO: 4 2.1 MÉTODOS DE GENERACIÓN DE NÚMEROS PSEUDOALEATORIOS 2.2 PRUEBAS ESTADÍSTICAS DE ALEATORIEDAD CABRERA HERNÁNDEZ TERESA ELIZABETH 1 DE MARZO DEL 2011 2.1 GENERACIÓN DE NÚMEROS PSEUDOALEATORIOS

Más detalles

INDICE 1.1. Información y Significado 1.2. Arreglos en C 1.3. Estructura en C 1.4. Clases en C++ 2. La Pila 2.1. Definición y Ejemplos

INDICE 1.1. Información y Significado 1.2. Arreglos en C 1.3. Estructura en C 1.4. Clases en C++ 2. La Pila 2.1. Definición y Ejemplos INDICE Prefacio xiii 1. Introducción a las Estructuras de datos 1 1.1. Información y Significado 1 Enteros binarios y decimales 2 Números reales 4 Cadenas de caracteres 5 Hardware y software 6 Concepto

Más detalles

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

BUSQUEDA SECUENCIAL Y DIRECTA, MARCELA MARQUEZ REBECA NAVARRO FONSECA GUADALUPE RUIZ ANGULO JONATHAN ALEXIS TOPETE ESTRUCTURA Y OPERACIONES BUSQUEDA SECUENCIAL Y DIRECTA, MARCELA MARQUEZ REBECA NAVARRO FONSECA GUADALUPE RUIZ ANGULO JONATHAN ALEXIS TOPETE ESTRUCTURA Y OPERACIONES BUSQUEDA Cuando se realizan operaciones de búsqueda es preciso

Más detalles

Tema 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 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 detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 2. Estructura de un Fichero. Operaciones. Básicas.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 2. Estructura de un Fichero. Operaciones. Básicas. FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 2. Estructura de un Fichero. Operaciones Básicas. 1.- Introducción. 2.- Organización: Campos y Registros. 3.- Acceso a la Información.

Más detalles

White 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:  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 detalles

Tema 1. ORDENACIÓN, BÚSQUEDA E INTERCALACIÓN INTERNA (Algoritmos)

Tema 1. ORDENACIÓN, BÚSQUEDA E INTERCALACIÓN INTERNA (Algoritmos) Tema 1. ORDENACIÓN, BÚSQUEDA E INTERCALACIÓN INTERNA (Algoritmos) 1. Declaraciones previas Para los algoritmos que aparecen a continuación se supone que se han realizado las siguientes declaraciones globales:

Más detalles

ANÁLISIS Y DISEÑO DE ALGORITMOS

ANÁLISIS Y DISEÑO DE ALGORITMOS ANÁLISIS Y DISEÑO DE ALGORITMOS CURSO 2005/2006 BOLETÍN DE PROBLEMAS: DIVIDE Y VENCERÁS Ejercicio 1 Dado un vector ordenado y rotado k veces: diseñar un algoritmo O(log n) que encuentre el elemento mayor

Más detalles

Práctica 2: Estructuras/Uniones/Campos de bits

Práctica 2: Estructuras/Uniones/Campos de bits Facultad de Ciencias Exactas, Ingeniería y Agrimensura Departamento de Sistemas e Informática Escuela de Electrónica Informática Aplicada Práctica 2: Estructuras/Uniones/Campos de bits Contenido: Esta

Más detalles