Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????
|
|
- Sebastián Alcaraz Henríquez
- hace 7 años
- Vistas:
Transcripción
1 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 una búsqueda e inserción muy rápidas; para ello se hace uso de un array, con lo que volvemos a la estructura básica de almacenamiento. Sin embargo, hay una diferencia importante que es lo que hace que sea mejor que el array en cuanto a rapidez: a cada dato se le asigna, mediante una fórmula matemática denominada función hash, una posición única en la tabla, con lo que la búsqueda, la inserción y el borrado son inmediatos: O(). Como ocurre siempre, lo que ganamos por un lado, lo perdemos por otro; en el caso de la tabla hash los inconvenientes son: Al tratarse de un array, el tamaño de la tabla está limitado y debe fijarse desde el principio. Como las posiciones ocupadas no tienen por qué ser consecutivas, no se puede recorrer el contenido de una tabla hash. Como la posición de una palabra se calcula de forma matemática, los datos no pueden almacenarse ordenados. Si permitimos datos duplicados se produce lo que se denomina colisión, que consiste en que a dos palabras se les asigna la misma posición en el array. Este es un problema que trataremos de resolver. Función hash: Hasta ahora hemos dicho que a cada palabra se le asigna una determinada posición de la tabla por medio de la función hash, pero todavía no hemos definido esta función. Veamos una primera solución y sus inconvenientes, y las soluciones que nacen a partir de ésta: Solución : Proponemos como una primera función hash la suma del código ASCII de cada una de las letras de la palabra: F( Palabra) = Palabra' Last i= Palabra' First Character' Pos( Palabra( i)) Por ejemplo: F (" alfredo") = =
2 Programación. Tema : Tablas Hash /Mayo/ Colisión : Palabras idénticas. Colisión : Palabras formadas por las mismas letras pero en distinto orden. Colisión : Palabras distintas cuyas letras dan la misma suma. La suma da números muy pequeños. Solución : Suma ponderada o polinómica. Cambiamos la función hash para que el resultado sea mayor; para conseguir esto multiplicamos la posición de cada letra de la palabra por el número de letras del alfabeto () elevado al peso que tiene la letra en la palabra: F n n ( Palabra) = Polinomio( Palabra) = n. + ( n ) Por ejemplo: F (" alfredo") = Los resultados de la función hash salen muy diferentes para cada palabra, con lo que éstas se guardan en posiciones muy separadas de la tabla, desperdiciando de esta forma una gran cantidad de memoria. Si introducimos una palabra muy grande, la posición resultante es demasiado elevada. Por ejemplo, si queremos insertar una palabra de letras, la posición que le corresponde viene dada por Solución : Para evitar que se produzcan resultados demasiado elevados, dividimos el resultado de la función de la solución anterior entre el tamaño de la tabla hash y tomamos como resultado de la nueva función hash el resto de esta división. F ( Palabra) = Polinomio( Palabra) mod Tamaño _ Tabla Se producen muchas colisiones debido a la reducción del resultado de la función hash con el mod. Solución :
3 Programación. Tema : Tablas Hash /Mayo/ Para arreglar el problema de las colisiones hay dos posibles opciones: Usar memoria dinámica: Cada posición de la tabla hash contiene una lista o un árbol. De esta forma, si a dos palabras les corresponde la misma posición de la tabla, lo único que hay que hacer es insertar ambas en la lista o en el árbol, según sea el caso. Si la solución anterior no es viable, hay que buscar otra manera de arreglar las colisiones. Esta solución consistiría en buscar, mediante saltos, otra posición de inserción de la palabra a partir de la posición que le corresponde según la función hash, sólo en el caso de que esta posición esté ocupada, es decir, sólo si se produce una colisión. Hay varias implementaciones de esta solución en función del salto que se utilice:. Salto = Posición + n, con n =,,... De esta forma insertaremos la nueva palabra en la posición no ocupada más próxima a partir de la posición que le correspondería en realidad. Por ejemplo: Queremos insertar, pero la posición que le corresponde (posición ) ya está ocupada, por lo que insertaremos en la posición vacía más próxima a a partir de ésta De la misma forma que antes, vamos a insertar Ahora queremos insertar, pero la posición que le corresponde (posición ) ya está ocupada.
4 Programación. Tema : Tablas Hash /Mayo/ Las palabras tienden a concentrarse en ciertas zonas de la tabla, dejando grandes espacios en blanco entre cada grupo de posiciones ocupadas.. Salto = Posición + n, con n =,,... De esta forma, evitamos el apelotonamiento de datos. Si queremos insertar una palabra y justo las posiciones x +, x +, x +,... están ocupadas, mientras que las que quedan en medio están vacías, va a tardar demasiado en encontrar un hueco libre en la tabla cuando en realidad se ha pasado por alto unos cuantos. Queremos insertar, pero la posición que le corresponde (posición ) ya está ocupada buscamos la posición de inserción: x + = Ya está ocupada. x + = Ya está ocupada. x + = Se sale de la tabla, con lo que contamos a partir del principio: = Ya está ocupada.... Así entraríamos en un bucle sin fin, pues las posiciones se van a repetir y, sin embargo, todavía nos quedan posiciones libres en la tabla.. Salto variable: el valor de este salto no puede ser aleatorio, ya que de ser así, una vez insertada una palabra no seríamos capaces de encontrarla en la tabla, pues no sabríamos cuánto hay que saltar a partir de su posición resultante de la función hash. Una posible solución es calcular este salto por medio de otra función hash que resulte un número más pequeño: Salto = k (( Polinomio( Palabra)) mod k) donde k es el máximo salto que permitimos (lo elegimos nosotros). Algoritmos en Ada: function Posición_Hash ( Palabra : in String; Tamaño_Tabla : in Positive) return Natural is
5 Programación. Tema : Tablas Hash /Mayo/ Posición : Natural := ; begin for I in Palabra Range loop Posición := (Posición + (I * Character Pos(Palabra(I) **I))) mod Tamaño_Tabla; end loop; return Posición; end Posición_Hash; function salto_hash (Palabra : in String) return Integer is begin return Character Pos (Palabra(I)) mod ; end Salto_Hash; Observaciones importantes: Se recomienda fijar el tamaño de la tabla hash como el doble del necesario para almacenar todos los elementos. Si queremos ampliar el tamaño de la tabla, como la función hash depende del tamaño de ésta, hay que recalcular las posiciones de todos lo elementos e insertarlos en estas nuevas posiciones (NO se puede copiar directamente el contenido de una tabla a otra). El tamaño de la tabla debe ser un número primo para evitar bucles infinitos como ocurría en el ejemplo del segundo tipo de salto. Se recomienda no permitir datos duplicados a no ser que vayamos a implementar la tabla hash con listas, ya que si se almacena todo en el array la gestión de la información para insertar y buscar se complica. En caso de que permitiéramos datos duplicados en una tabla implementada con saltos, necesitaríamos introducir un nuevo campo Borrado de tipo boolean en cada posición que nos diga si el dato contenido en esa posición ha sido borrado o todavía no se ha insertado nada en ella. Observación. Esto es así porque, al haber datos duplicados, el segundo elemento que insertemos se irá a colocar en una posición de la tabla que no se corresponde con el resultado de la primera función hash. En caso de que no usásemos la variable boolean, si borrásemos el elemento que había en la primera posición, cuando intentásemos buscar el segundo elemento se elevaría la excepción No_Encontrado pues la posición que le corresponde está vacía. Sin embargo, con el boolean, como al borrar el primer elemento habríamos puesto esta variable a True, al buscar el segundo elemento basta con seguir calculando saltos hasta
6 Programación. Tema : Tablas Hash /Mayo/ que lo encontremos, hasta que en una posición en la que debería estar el elemento el campo Borrado esté puesto a False o hasta que la posición calculada con saltos sea de nuevo igual a la posición de la que partimos. Lo vemos mejor con un ejemplo: Supongamos un array implementado con el primer tipo de salto, es decir, saltos a posiciones consecutivas: Dato : Dato : Dato : Dato : Borramos Borrado : True Dato : Dato : Dato : Dato : Dato : Dato : Dato : Dato : Dato : Si ahora quisiéramos buscar el elemento los pasos que seguiríamos serían:. Posición () = mod =. Comprobamos el campo Borrado de la posición de la tabla. Como está puesto a True, seguimos buscando.. Comprobamos el Borrado de la posición. Como está a False, miramos a ver si el dato coincide con el que estamos buscando. Como no es así, seguimos buscando..... Comprobamos el Borrado de la posición. Como está a False, miramos a ver si el dato coincide con el que estamos buscando. Como esto último se cumple, retornamos True.
7 Programación. Tema : Tablas Hash /Mayo/
Tema 2.- Ordenación (Parte I)
En la elaboración de estos apuntes han participado los siguientes alumnos: Helena Hernández Obregón (Curso 200/2002), Eduardo Quevedo, Raquel González y Aarón Asencio (Curso 2003/200). Actualizado por
Más detallesTema 7: Árbol Binario
Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema 7: Árbol Binario En el árbol binario se combina lo mejor del array (acceso rápido a elementos,
Más detallesTema 3: Listas Enlazadas
Apuntes elaborados por: Eduardo Quevedo/ Raquel López García Revisado por: Javier Miranda el???? Tema 3: Listas Enlazadas En este tema se va a trabajar con memoria de tipo dinámico, organizada por nodos
Más detallesApuntes elaborados por: Aaron Asencio, Eduardo Quevedo, Raquel López Revisado por: Javier Miranda el???
Apuntes elaborados por: Aaron Asencio, duardo Quevedo, Raquel López Revisado por: Javier Miranda el??? Tema 9: rafos Los grafos no son más que la versión general de un árbol, es decir, cualquier nodo de
Más detallesHashing (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 5.- Recursividad
Apuntes elaborados por: Raquel López, Eduardo Quevedo y Aaron Asencio Revado por: Javier Miranda el???? Tema 5.- Recursividad NOTA Todos los ejemplos que se exponen en este tema se pueden realizar utilizando
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 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 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 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 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 detallesApuntes elaborados por: Eduardo Quevedo,Raquel López Revisado por: Javier Miranda el 25 de Mayo de 2004
Apuntes elaborados por: Eduardo Quevedo,Raquel López Revisado por: Javier Miranda el 25 de Mayo de 2004 Tema 1: Arrays En este primer tema nos familiarizaremos con la programación mediante objetos con
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 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 (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 detallesSEGUNDA PARTE: TIPOS COMPLEJOS
SEGUNDA PARTE: TIPOS COMPLEJOS Introducción En la primera parte del tema se vieron los tipos simples de datos que es capaz de almacenar el ordenador: booleanos, caracteres, enteros y reales. Sin embargo,
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 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 detalles1.2.4 Listas enlazadas
1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina
Más detallesARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES TEMAS Recorrido de un árbol Máximo y mínimo Búsqueda de un elemento Borrado de un nodo 3 Características ARBOLES - CONCEPTOS Cada elemento del árbol
Más detallesTitulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Nombre-Apellidos:
Nombre-Apellidos: Nota: 1. Ejercicio (1 punto) Responder a las siguientes preguntas de tipo test, seleccionando sólo una de las respuestas. Se evaluarán sólo las respuestas contestadas con el siguiente
Más detallesARBOLES B. Lo que si es cierto es que la letra B no significa "binario", ya que:
ARBOLES B El problema original comienza con la necesidad de mantener índices en almacenamiento externo para acceso a bases de datos, es decir, con el grave problema de la lentitud de estos dispositivos
Más detallesDivisibilidad y congruencia
Divisibilidad y congruencia Taller de Álgebra I Verano 2017 Algoritmo de la división Teorema Dados a, d Z, d 0, existen únicos q, r Z tales que a = qd + r, 0 r < d. Idea de la demostración: (caso a 0,
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 detallesTitulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz
Más detallesAnálisis amortizado El plan:
Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras
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 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 detallesTema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas
Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación
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 detallesTema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés
Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Índice general:. Modelo y Aplicación de Lista con Punto de Interés
Más detallesRazón de ser Computadora Programa Programador Análisis y solución de problemas (Metodología) Algoritmo Diagrama de flujo
ARREGLOS I Razón de ser Computadora Programa Programador Análisis y solución de problemas (Metodología) Algoritmo Diagrama de flujo Investigaron y estudiaron ( comprendieron!) Clasificación de las computadoras
Más detallesINTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00924C)
APRENDERAPROGRAMAR.COM INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00924C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
Más detallesCOMPRESIÓN DE MENSAJES
COMPRESIÓN DE MENSAJES Codificación por Huffman y Codificación Aritmética. Jose Alberto Benítez Andrades Juan Antonioo Valbuena López 2º Ingeniería Informática Teoría de la Información y Códigos Universidad
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 detallesLENGUAJES DE PROGRAMACIÓN. Solución al Ejercicio de Autocomprobación 1
Solución al Ejercicio de Autocomprobación 1 PREGUNTA 1 (1 punto) Señale razonadamente la veracidad o falsedad de las afirmaciones siguientes: A. La diferencia fundamental entre los lenguajes ensamblador
Más detallesTema 4- Representación Enlazada
Tema 4- Representación Enlazada Tema 4: Representación Enlazada Índice general: 1. Representación Enlazada: Variables referencia Java como enlaces. 2. Listas Enlazadas Genéricas. Operaciones y costes.
Más detallesTema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz
Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat
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 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 detallesImplementación de diccionarios sobre Trie en C++
Implementación de diccionarios sobre Trie en C++ Algoritmos y Estructuras de Datos II 2. do cuatrimestre de 2016 Introducción Vamos a implementar una interfaz de diccionario en C++ La representación interna
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 detallesDivisibilidad y congruencia
de los ejercicios de la clase 8 Divisibilidad y congruencia Taller de Álgebra I Segundo cuatrimestre de 2016 Introducción A continuación les presentamos algunas soluciones para los ejercicios de la clase
Más detallesTablas 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 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 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 detallesProgramación en Visual Basic Ricardo Rodríguez García
Manual Básico de Programación en Visual Basic 1.- Estructura de un proyecto Visual Basic Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único paquete que denominaremos proyecto.
Más detallesTeorema fundamental para la resolución de ecuaciones no lineales.
Por Bruno Cuevas y Carlos Pérez 1 Tutorial Matlab 2 En este nuevo tutorial, intentaré por una parte explicar la teoría que hemos dado en clase después del primer parcial (es decir: resolución de ecuaciones
Más detallesInformática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales
UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo
Más detallesParte I: Programación en Ada
Parte I: Programación en Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas 5.
Más detallesRESPUESTAS AL EXAMEN DE FUNCIONES 22/05/2001
RESPUESTAS AL EXAMEN DE FUNCIONES /05/001 En lugar de simplemente dar las respuestas me ha parecido conveniente introducir las explicaciones pertinentes sobre el porqué de dichas respuestas Espero que
Más detalles1 Introducción. 1.2 Estructuras de datos y Tipos de Datos Abstractos. Estructura de Datos y Algoritmos. Tema I Introducción y conceptos fundamentales
1 Introducción En este capitulo se presentan los conceptos y definiciones fundamentales que acompañarán al alumno a lo largo de toda la asignatura. Es muy importante fijar estos conceptos ya que de ello
Más detallesAnálisis amortizado El plan:
Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacc Estructuras
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 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 detallesArreglos y Subrangos
Arreglos y Subrangos Programación 1 InCo - FING Programación 1 Arreglos y Subrangos InCo - FING 1 / 27 Tipos de datos definidos por el programador Programación 1 Arreglos y Subrangos InCo - FING 2 / 27
Más detallesArreglos y Subrangos
Arreglos y Subrangos Programación 1 InCo - FING Contents 1 Tipo subrango 2 1.1 Subrangos de enteros......................... 2 1.2 Subrangos de caracteres....................... 2 1.3 Operaciones con subrangos.....................
Más detallesDEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS
DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación Un dato
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 detallesSegundo parcial de Programación 2
Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas
Más detallesMatemáticas 2ºBachillerato Aplicadas a las Ciencias Sociales
Matemáticas 2ºBachillerato Aplicadas a las Ciencias Sociales 1era evaluación. Determinantes DETERMINANTES Se trata de una herramienta matemática que sólo se puede utilizar cuando nos encontremos con matrices
Más detallesEstructura de Datos. Listas Enlazadas
Estructura de Datos Listas Enlazadas Conceptos de Lista enlazada Una lista enlazada es una secuencia de nodos que se interconectan mediante sus campos de enlace. Nodo: un objeto creado desde una clase
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 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 detallesApéndice 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas. . Analizando el
Apéndice 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas Polinomios Dedicaremos este apartado al repaso de los polinomios. Se define Rx a 0 a 1 x a 2 x 2...a n x n a 0,a 1,a 2,...,a
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 detallesProgramación de Videojuegos Tema 15 Tipos de Dato I. 15. Tipos de Dato I
15. Por ahora ya sabemos lo suficiente sobre el muestreo de textos por pantalla, aunque por supuesto a falta de practicar un poco. Vamos a cambiar un poco de temática y vamos a ver otros aspectos avanzados
Más detallesCurso de Programación 1
Curso de Programación 1 Plan 97 Búsqueda y Ordenación Métodos de búsqueda Existen aplicaciones en las cuales es necesario consultar si un elemento se encuentra dentro de un array. A continuación veremos
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 detallesLista 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 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 detallesProgramación Web Tema 3.2 Java Script Estructura del Lenguaje. Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM
Programación Web Tema 3.2 Java Script Estructura del Lenguaje Miguel Ángel Manso Emerson Castañeda Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM Contenido Variables Operadores Estructuras
Más detallesUnidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h
Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h Prácticas: Ejercicios: Conceptos: Tablas unidimensionales, vectores, cadenas, modificación,
Más detallesEstructuras dinámicas lineales (i)
Estructuras dinámicas lineales (i) Introducción En la lección anterior se explicaron los conceptos de dinámicas y puntero; vimos la forma en que se implementan dichas tanto en la notación algorítmica como
Más detallesLos Tipos Abstractos de Datos. Estructuras de Datos y Algoritmos 03/04
Los Tipos Abstractos de Datos Estructuras de Datos y Algoritmos 03/04 Qué son los TAD s? Metodología de programación con TAD s Especificación Algebraica de TAD s Qué son los TAD s? Con los lenguajes de
Más detallesTema 2: Desarrollo de Algoritmos. E.E. de Algorítmica
Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de
Más detalles2.1 Introducción. Propiedades.
19 2 MATRICES II: DETERMINANTES En este segundo capítulo de matrices, aprenderemos a utilizar una herramienta muy importante como son los determinantes Gracias a ellos, podremos calcular la inversa de
Más detallesApunte Laboratorio ALPI - El lenguaje de programación Pascal
Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................
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 detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión X Colecciones... 6 Interfaz List... 15 ArrayList... 17 Recorrido Colecciones... 22 Iteradores en
Más detallesConocimientos previos
Ficha de aprendizaje Tema: Datos, variables y Operaciones n 6 Logro Reconoce las partes de un programa y comprende su estructura. Reconoce la diferencia entre los tipos de datos. Asigna datos a las variables
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 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 detallesAlgoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y structuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. omplejidad de los
Más detallesINTERFACES MAP Y SORTEDMAP DEL API JAVA. CLASES HASHMAP Y TREEMAP. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00922C)
APRENDERAPROGRAMAR.COM INTERFACES MAP Y SORTEDMAP DEL API JAVA. CLASES HASHMAP Y TREEMAP. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00922C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesUniversidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos
Más detallesIntroducción: una simple colección
Introducción: una simple colección Implemente una clase denominada Lista. La clase deberá mantener una colección de números y proveer los siguientes i métodos: Listas dinámicas simplemente enlazadas Franco
Más detallesVersión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación:
Versión Iterativa de recuperar en un ABB Ejercicios Tema 11 Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó Martínez gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica
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 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: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz
Más detallesAlgorítmica y Complejidad. Tema 3 Ordenación.
Algorítmica y Complejidad Tema . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo
Más detallesB) Contestar Verdadero o Falso a las siguientes preguntas, justificando la respuesta:
ASIGNATURA CURSO CALIFICACIÓN ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN 2005 / 2006 TITULACIÓN GRUPO CONVOCATORIA EXTRAORDINARIA - DIC B) Contestar Verdadero o Falso a las siguientes preguntas, justificando
Más detallesALGORITMOS Y PROGRAMACIÓN I Unidad 3
ALGORITMOS Y PROGRAMACIÓN I Unidad 3 Tipos de Datos Estructurados Prof. Jaime Soto Sección (007) Material original de Prof. AURELY LEAL Introducción a las Estructuras de Datos Una estructura de datos es
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 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 detallesCAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS
CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS Capítulo 3 Estructuras de datos estáticas 1/37 1. INTRODUCCIÓN Las estructuras de datos se utilizan, generalmente, para procesar una colección de valores que están
Más detallesProgramación en Pascal. Memoria dinámica
Programación en Pascal. Memoria dinámica Escuela Técnica Superior de Ingeniería de Telecomunicación Universidad Rey Juan Carlos gsyc-profes (arroba) gsyc.urjc.es Diciembre de 2018 GSyC - 2018 Programación
Más detalles