Tablas de Dispersión
|
|
|
- José Antonio Hernández Mora
- hace 8 años
- Vistas:
Transcripción
1 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 del número de elementos). Una primera aproximación es utilizar la clave (k) como índice de un vector que contiene referencias a elementos. Este enfoque se denomina vector asociativo (lookup array). Problemas: o No tos los tipos de clave sirven de índice de vectores (por ejemplo, cadenas de caracteres, números reales). o El tamaño del vector (m) es igual al del rango de la clave (número de posibles valores distintos que pueda tener). Este tamaño es indepiente del número de elementos almacenas (n), y puede ser muy grande. Las tablas de dispersión resuelven el problema definio una función de dispersión que traduzca la clave a un valor numérico que luego se reduce al rango 0..m-1. Los elementos se almacenan en una tabla cuyo tamaño (m) se elige con unos determinas criterios. m no tiene porqué ser igual a n (pueden existir posiciones vacías o varios elementos en cada posición). El méto más común para reducir el valor numérico obteni de la clave al rango 0..m-1 (índice a la tabla) es hallar el resto de su división por m. o Si m es el tamaño elegi para la tabla y h(k) la función de dispersión, un elemento cuya clave sea k se almacenará en la posición i de la tabla, calculada de esta forma: i = h(k) mod m o La función de dispersión se diseña tenio en cuenta el tipo de datos de la clave y otras características (uniformidad sobre el conjunto de datos). Si la clave es de tipo entero, la función de dispersión más sencilla es devolver el propio valor de la clave: h(k) = k o Si la clave es una cadena de b caracteres, podemos tratarla como una secuencia de enteros k k 0 k b-1 (toman como el valor asocia a cada carácter su posición en la tabla de códigos). Una función de dispersión muy utilizada es la siguiente: h(k) = Σ k i 31 i (i = 0 b-1) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 35
2 Tablas de Dispersión Abierta El enfoque anterior sufre del problema de las colisiones: La función de dispersión puede asignar el mismo índice a claves distintas. h(k 1 ) mod m = h(k 2 ) mod m, k 1 k 2 Las tablas de dispersión abierta utilizan como estrategia de resolución del problema de las colisiones el permitir que varios elementos se encuentren almacenas en la misma posición de la tabla: Es decir, el conteni de la tabla no son elementos, sino listas de elementos. Las listas suelen implementarse mediante representación enlazada, con enlaces simples y sin mantener un orden entre los elementos. Se define el factor de carga (L) de la tabla como el valor L = n/m, nde n es el número de elementos almacenas. L representa el tamaño promedio de las listas. Si la función de dispersión se comporta de manera uniforme para el conjunto de datos utiliza, la mayoría de las listas trán un tamaño cercano al valor de L. Algoritmos de las operaciones de acceso, inserción y borra: Acceso Inserción Borra i h(k) mod m lista tabla[i] Búscar secuencialmente en la lista un elemento cuya clave sea k Devolver resulta de la búsqueda i h(k) mod m lista tabla[i] Insertar el elemento al principio de la lista. i h(k) mod m lista tabla[i] Búscar secuencialmente en la lista un elemento cuya clave sea k Borrar elemento de la lista O(L) O(1) O(L) Nota: La tabla se define como un vector de listas indexa de 0 a m-1. UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 36
3 Propiedades de la dispersión abierta El número de elementos almacenas puede ser mayor que el tamaño de la tabla (puede darse que n > m). No es estrictamente necesario realizar operaciones de reestructuración (cambio de tamaño) de la tabla, salvo para garantizar que el coste de las operaciones de acceso y borra (que es lineal con L) sea constante. Las operaciones de acceso y borra se convierten en operaciones de búsqueda y borra en listas: La eficiencia depe del tamaño de las listas, para que se considere que el tiempo es constante se debe cumplir: o El tamaño de las listas debe ser más o menos uniforme: No debe darse el problema de que unas pocas listas contengan la mayoría de los elementos (problema del agrupamiento primario). Para conseguirlo se debe cumplir que la función de dispersión sea uniforme para los conjuntos de datos que se van a utilizar. o Si se cumple la condición anterior, la mayoría de las listas tra un tamaño que no se desviará mucho del valor promedio L = n/m (factor de carga). No se debe permitir que L sea muy grande, por lo que el tamaño de la tabla debe ser del mismo orden que el máximo número de elementos que se van a almacenar. Ejemplo de agrupamiento primario Se almacenan datos de 177 personas en un tabla de tamaño m = 150 y usan como clave el DNI. El factor de carga es de L = Se utilizan s funciones de dispersión, la primera es uniforme y la segunda no: h(dni) = dni: (Nº promedio accesos = 1.6) Tamaño de la lista Nº de listas de ese tamaño Porcentaje de elementos que están en listas de ese tamaño h(dni) = dni div : (Nº promedio accesos = 15.9) 24 % 43 % 19 % 11 % 3 % Tamaño de la lista Nº de listas de ese tamaño Porcentaje de elementos que están en listas de ese tamaño 6 % 6 % 14 % 37 % 37 % UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 37
4 Tablas de Dispersión Cerrada Las tablas de dispersión cerrada utilizan como estrategia de resolución del problema de colisiones el asignar otra posición en la tabla al elemento cuya posición está ocupada. Se define una función adicional, la función de exploración, que calcula una nueva posición para un elemento a partir de su posición inicial y del número de intentos de realojamientos (nº de colisiones sufridas) en el proceso de hallar una posición vacía. El conteni de las tablas de dispersión cerrada son referencias a elementos: A diferencia de la dispersión abierta, sólo se puede almacenar un elemento (o ninguno) en cada celda. Cuan se busca un elemento en la tabla se sigue el mismo camino de exploración que se ha segui en la inserción. La aparición de una posición vacía indica que no existe el elemento en la tabla, ya que en caso contrario se hubiera inserta en esa posición. La estrategia anterior implica que no se debe permitir que la tabla esté completamente llena, ya que impediría detectar que un elemento no existe. Por lo tanto se debe exigir que n < m. Si al insertar un elemento se llena la tabla se debe reestructurar (crear una nueva tabla de tamaño mayor e insertar tos los elementos en la nueva tabla). Además se plantea el problema de que borrar un elemento cambian su posición en la tabla a vacía puede impedir el hallar otros elementos que sufrieron una colisión en esa posición, ya que aparece una posición vacía en su ruta de exploración. La solución más utilizada es la estrategia perezosa de borra: Los elementos no se borran marcan su posición como vacía, sino que se marca es posición como borrada. Una casilla borrada se puede usar para insertar un elemento (al igual que una posición vacía), pero no indica el final de una exploración (a diferencia de una posición vacía). UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 38
5 Implementación de una tabla de dispersión cerrada class TABLA_DISP[ELEM <- HASHABLE] -- Almacena elementos no repetis creation crear_tabla feature { NONE } claves : ARRAY[ELEM]; -- Tabla de elementos vacia : ARRAY[BOOLEAN]; -- Tabla que indica si una posición está vacía borrada : ARRAY[BOOLEAN]; -- Tabla que indica si una posición está borrada Lmax : DOUBLE; -- Factor de carga maximo m, n : INTEGER; -- Capacidad y numero de elementos de la(s) tabla(s) feature { NONE } explorar(inicial, intento, desp: INTEGER) : INTEGER is -- Implementa la estrategia de exploración de la -- tabla. Calcula la posición que corresponde al -- enesimo intento de encontrar una posicion -- en la tabla partio de una posicion inicial. local desp : INTEGER; -- Exploración con desplazamiento cociente Result := (inicial+desp*intento) \\ m -- explorar reestructurar is -- Incrementa el tamaño de la tabla local -- Copias temporales de la tabla copia_claves : ARRAY[CLAVE]; copia_vacia : ARRAY[BOOLEAN]; copia_borrada : ARRAY[BOOLEAN]; m_ant, i : INTEGER; m_ant := m; -- Se salva la capacidad actual m := 2*m; -- Se bla el tamaño -- Se crean copias de la tabla anterior copia_claves := claves.clone; copia_vacia := vacia.clone; copia_borrada := borrada.clone; -- Se reinicializa la tabla con el nuevo tamaño n := 0; create claves.make(0,m-1); create vacia.make(0,m-1); create borrada.make(0,m-1); from i := 0 until i >= m loop vacia.put(true,i) ; borrada.put(false,i) ; i := i+1 -- Se insertan tos los elementos en la tabla nueva from i := 0 until i >= m_ant loop if not i) and not i) then i) reestructurar feature { ANY } crear_tabla(l_max: DOUBLE) is require (L_Max > 0.0) and (L_Max < 1.0) local i : INTEGER; Lmax := L_Max; m := 100; n := 0; create claves.make(0,m-1); create vacia.make(0,m-1); create borrada.make(0,m-1); from i := 0 until i >= m loop vacia.put(true,i) ; borrada.put(false,i) ; i := i+1 -- crear_tabla pertenece(k: CLAVE) : BOOLEAN is local i0,i,j,d : INTEGER; from i0 := k.hash_code \\ m; -- Posición inicial d := k.hash_code // m; -- Desplazamiento j := 1; -- Número de intentos i := i0; -- Posicion actual until i) or else (not i) and then i = k)) or (j > n) loop i := explorar(i0, j, d); -- Se explora la siguiente posicion j := j+1 Result := i = k) -- buscar insertar(k: CLAVE) is local i0,i,j : INTEGER; -- Se comprueba si es necesario reestructurar la tabla n := n+1; if (n = m) or (n/m > Lmax) then reestructurar -- Se busca el sitio de inserción from i0 := k.hash_code \\ m d := k.hash_code // m j := 1; i := i0 until i) or i) or else i = k) or (j > n) loop i := explorar(i0, j, d) ; j := j+1 if j > n then -- La exploración no ha encontra un hueco reestructurar ; insertar(k,v) -- Volver a intentar inserción else claves.put(k,i) ; vacia.put(false,i) ; borrada.put(false,i) -- insertar borrar(k: CLAVE) is local i0,i,j : INTEGER; -- Se busca la clave que se debe borrar from i0 := k.hash_code \\ m d := k.hash_code // m j := 1; i := i0 until i) or else (not i) and then i = k)) or (j > n) loop i := explorar(i0, j, d) ; j := j+1 if i = k then -- Se encontro la clave - borra perezoso borrada.put(true,i) -- borrar -- class TABLA_DISP UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 39
6 Funciones de Exploración Las funciones de exploración más utilizadas son la exploración lineal y con desplazamiento (tambien llamada ble dispersión): Exploración lineal: f m (i 0, j) = (i 0 + j) mod m Exploración por desplazamiento: f m (i 0, j, d) = (i 0 + j d) mod m En este tipo de exploración se debe proporcionar un valor adicional, d > 0, el cual se calcula a partir del valor de la clave (existen varios métos de calcularlo depio del tipo de clave). Propiedades de las Funciones de Exploración La función de exploración lineal es la estrategia más sencilla: Cada intento de realojamiento explora la casilla siguiente de la tabla. Se tiene la garantía de que si existe una posición libre esta estrategia la va a encontrar: Se explora toda la tabla. Sin embargo es vulnerable al problema del agrupamiento secundario: Si se insertan elementos cuyos claves generen índices correlativos, que compran una región de la tabla nde ya existen algunos elementos, podemos tener una tabla nde la mayoría de los elementos están desplazas de su posición original aunque gran parte de la tabla esté vacía. Para resolver éste problema es conveniente que las funciones de exploración recorran posiciones alejadas de la original. La exploración con desplazamiento resuelve el problema exploran posiciones alejadas a una distancia fija (el desplazamiento). Además, como el desplazamiento depe del valor de la clave, este méto es menos vulnerable que los anteriores al problema del agrupamiento primario (función de dispersión no uniforme). Se puede garantizar que la exploración con desplazamiento recorre toda la tabla siempre que el tamaño de la tabla, m, sea un número primo. UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 40
7 Eficiencia en las Tablas de Dispersión La eficiencia deperá de la longitud de las listas (dispersión abierta) o de la longitud del proceso de exploración (dispersión cerrada). Existen s situaciones distintas: Explorar para encontrar un elemento o explorar para encontrar una posición vacía. El análisis en el caso promedio da los resultas siguientes: Nº promedio de accesos a tabla Operación Disp. Abierta Disp. Cerrada Acceso (éxitoso) 1+L/2 ln(1/(1-l))/l Acceso (falli) 1+L 1/(1-L) Inserción 0 (salvo reestructuración) 1/(1-L) Borra 1+L/2 ln(1/(1-l))/l En la dispersión abierta la depencia es lineal con el factor de carga, siempre que la función de dispersión sea uniforme (la longitud de las listas no se desvíe demasia del valor promedio, L). En el peor caso (una única lista contenga tos los elementos y las m-1 restantes no tengan ninguno) el número promedio de accesos a tabla serían proporcionales a n en lugar de ser proporcionales a L. En la dispersión cerrada, a medida que el factor de carga se aproxima al valor límite 1 (tabla llena), el número de accesos crece de manera potencial. Por lo tanto, si se desea garantizar un orden constante en el caso promedio, se deben cumplir las siguientes condiciones: o Diseñar la función de dispersión para que sea uniforme de acuer con las características de los datos que se van a utilizar. o En tablas de dispersión cerrada, usar exploración con desplazamiento si puede darse el problema de agrupamiento. No permitir que la tabla esté demasia llena (valores de L cercanos a 1), habitualmente se reestructura si L > UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 41
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
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
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
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
Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom
Tema 05: Tablas hash M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Tablas hash o de dispersión Función
Capítulo 12: Indexación y asociación
Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación
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
Práctica 7. TAD aplicación
bjetivos. Práctica 7. TAD aplicación Se trata de construir el TAD APLICACIN con una implementación acotada. Se introducen la dispersión (hashing) y las cachés como técnicas de implementación para mejorar
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
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Gestor de bases de datos MicroSoft Access (2 de 4)
Gestor de bases de datos MicroSoft Access (2 de 4) Departament d Informàtica de Sistemes i Computadors 1 Contenido Conceptos generales Diseño de tablas Propiedades de los campos Ordenación, filtrado e
Sistemas operativos. Tema 10: Sistemas de ficheros
Sistemas operativos Tema 10: Sistemas de ficheros Sistemas de ficheros El sistema de ficheros suele ser el aspecto más m visible de un SO para los usuarios. Objetivos: Ofrecer una visión n uniforme del
El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:
El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Introducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al
Tema 6. Vectores 1. Introducción y Definiciones 2. Operaciones elementales con vectores 3. Definición y manejo de vectores (arrays arrays) en C 4. Operación de Recorrido secuencial de un vector 5. Operación
Universidad 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
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..
Algorí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
Curso 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
PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS OPERACIONES CON CELDAS, FILAS Y COLUMNAS EN EXCEL SELECCIONAR COPIAR MOVER BORRAR
PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS CONTENIDOS OPERACIONES CON LIBROS DE TRABAJO EN EXCEL GUARDAR UN LIBRO CERRAR UN LIBRO. CREAR UN NUEVO LIBRO. ABRIR UN LIBRO OPERACIONES CON CELDAS, FILAS
Complejidad computacional (Análisis de Algoritmos)
Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución
Tema 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
6. Vectores. 1. Introducción. 2. Declaración (I) Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos.
6. Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice 4. Paso de parámetros 5. Recorrido completo 6. Recorrido de búsqueda 7. Inicialización 2 Necesidad Agrupar
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
El TAD Grafo. El TAD Grafo
! Esta representación resulta útil cuando el número de vértices se conoce previamente y permanecerá fijo durante la resolución del problema, pero resulta ineficiente si necesitamos añadir o eliminar vértices
PROPIEDADES DE LOS CAMPOS. Cada campo de una tabla dispone de una serie de características que proporcionan un control
PROPIEDADES DE LOS CAMPOS Cada campo de una tabla dispone de una serie de características que proporcionan un control adicional sobre la forma de funcionar del campo. Las propiedades aparecen en la parte
EXCEL I LECCIÓN N 14
Importante Si va a buscar un valor (ya sea de texto o numérico) en lugar de una fórmula, asegúrese de hacer clic en Valores en el cuadro Buscar dentro de. Si en el cuadro Buscar dentro de está seleccionado
Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Estructuras en LabVIEW.
Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While
TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO
TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO 1. Introducción 2. Conceptos fundamentales de organizaciones de ficheros 3. Dispositivos de almacenamiento secundario 4. Ficheros desordenados
I. E. NORMAL SUPERIOR SANTIAGO DE CALI ASIGNATURA DE TECNOLOGÍA E INFORMÁTICA LIC. CARLOS ANDRÉS CASTAÑEDA HENAO GRADO 8º
I. E. NORMAL SUPERIOR SANTIAGO DE CALI ASIGNATURA DE TECNOLOGÍA E INFORMÁTICA LIC. CARLOS ANDRÉS CASTAÑEDA HENAO GRADO 8º EXCEL CONTENIDO: Gráficos Funciones Gráficos en Excel Un gráfico es la representación
Definición de Memoria
Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria
Tablas Hash y árboles binarios
Tablas Hash y árboles binarios Algoritmos Tablas hash Árboles Binarios Árboles Balanceados Tablas Hash Introducción Las tablas hash son estructuras tipo vector que ayudan a asociar claves con valores o
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 2: Memoria dinámica y Bibliotecas Objetivos Practicar conceptos
Ampliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
5. Subprogramas Fundamentos de Informática
5. Subprogramas Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Subprogramas 1. Cálculo de la función Coseno 2. Suma 3. Ecuación de 2º grado 2 1. Cálculo de
Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen
Fundamentos de Informática. Dpto. de ATC - Página 1 de 8 conceptos Manejo de ficheros en C Contienen los datos que se almacenan en dispositivos de almacenamiento masivo: disquetes, discos duros, DROM,
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
<tipo> Tipo de dato de los elementos del vector
Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.
Clase 31. Hashing (Dispersión) Motivación
Clase 31 Hashing (Dispersión) Motivación Podemos realizar una búsqueda en un tiempo mejor que O( lg n )? La operación de memoria de un ordenador lo realiza en mucho menos tiempo: toma una clave (la dirección
6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.
TEMA 6: ESTRUCTURAS DE DATOS (Arrays). CONTENIDO: 6.1.- Introducción a las estructuras de datos. 6.1.1.- Tipos de datos. 6.2.- Arrays unidimensionales: los vectores. 6.3.- Operaciones con vectores. 6.4.-
TIPOS DE CAMPOS Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes.
Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular.
Nombre de la asignatura : Administración de Archivos. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9323
. D A T O S D E L A A S I G N A T U R A Nombre de la asignatura : Administración de Archivos Carrera : Ingeniería en Sistemas Computacionales Clave de la asignatura : SCB-9 Horas teoría-horas práctica-créditos
Especificar las relaciones de autoridad, responsabilidad, y obligación entre las funciones y los puestos.
ORGANIZACIÓN 1 Lectura No. 8 Departamentalización Es la división y el agrupamiento de las funciones y actividades en unidades específicas, con base en su similitud. Al departamentalizar, es conveniente
TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN
TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN 1. INTRODUCCIÓN. SISTEMAS DE NUMERACIÓN EN. Sistema binario. Sistema octal. Sistema hexadecimal. 2. REPRESENTACIÓN DE TEXTOS.. Números naturales. Números enteros.
INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008
INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema
FUNCIONES Y FÓRMULAS FUNCIONES
FUNCIONES Y FÓRMULAS Excel permite la realización automática de multitud de operaciones (matemáticas, estadísticas, lógicas, financieras, de fechas y hora, de búsqueda, de operación con textos, de Bases
Estructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge [email protected] Árboles binarios de búsqueda, Table of Contents
Fundamentos de Programación Visual Basic
Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280
Tema 2. Organizaciones de ficheros y estructuras de acceso
Tema 2. Organizaciones de ficheros y estructuras de acceso Ficheros y Bases de Datos 10 de junio de 2002 1. Introducción Este documento contiene preguntas del tema 2 recogidas por estudiantes de la asignatura
FUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
Introducción a la Programación en MATLAB
Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos
Sintaxis del Analizador de consultas Lucene
Sintaxis del Analizador de consultas Lucene Índice: Visión general... 2 Términos... 2 Campos... 2 Modificadores de texto... 3 Búsquedas comodín... 3 Búsquedas difusas... 4 Búsquedas de proximidad... 4
2).- Nombre de función. Para obtener una lista de funciones disponibles, haga clic en una celda y presione MAYÚSC+F3.
FUNCIONES DE EXCEL Adiestramiento Computacional Página 1 Funciones Las funciones son fórmulas predefinidas que ejecutan cálculos utilizando valores específicos, denominados argumentos, en un orden determinado
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
Java para programadores
Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) [email protected] Contenidos Variables. Tipos
Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Programación de Sistemas
Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia
Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos
Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo
ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO
ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO 16.1 INTRODUCCIÓN: El teclado se comunica con la BIOS a través de puertos de comunicación controlados por las interrupciones de la
LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Tutorial Básico de vbscript
Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así
3. COLA DE PRIORIDAD DEFINICION (I)
3. COLA DE PRIORIDAD DEFINICION (I) Conjunto de elementos ordenados con las operaciones: Crear ( ) > ColaPrioridad EsVacio () > Boolean Insertar (ColaPrioridad, Item) > ColaPrioridad BorrarMínimo (ColaPrioridad)
llamada a la función Val(num) cambiosigno(n) redondeo(num,3)
Resumen Subprogramas y Funciones del Usuario - 1- SUBRUTINAS o Subprogramas Y FUNCIONES Un subprograma o subrutina es una parte de codificación que realiza un proceso o procedimiento al que se puede acceder
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios
Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia
INSTRUMENTACIÓN N AVANZADA. ARRAYS EN LABVIEW Relacionando Datos Arrays y Clusters
ARRAYS EN LABVIEW Relacionando Datos Arrays y Clusters Objetivos 1. Event Structure 2. Arrays 3. Funciones 4. Ejercicios 5. Cluster 6. Simulación de adquisición de señales de tensión 7. Adquisicion de
Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Computación II. Introducción a Visual Basic
Computación II Introducción a Visual Basic Introducción a Visual Basic Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rápida
Expresiones y sentencias
Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En Java, todas las sentencias
Aná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
Introducción a la Programación 11 O. Humberto Cervantes Maceda
Introducción a la Programación 11 O Humberto Cervantes Maceda Recordando En la sesión anterior vimos que la información almacenada en la memoria, y por lo tanto aquella que procesa la unidad central de
4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Ficha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación
TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas
Tema 5. Estructura de datos Pila
Tema 5. Estructura de datos Pila 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
Fundamentos de programación JAVA
Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:
Bases de Datos Relacionales con Base de OpenOffice y consultas SQL para Tecnología de la Información.
Bases de Datos Relacionales con Base de OpenOffice y consultas SQL para Tecnología de la Información. 1 Introducción Como ya sabes las bases de datos (BD) son la mejor forma de almacenar y trabajar con
INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
Diseño de página y configurar un documento
Contenido 1. Abrir un nuevo documento y empezar a escribir... 3 1.1 Abrir en blanco:... 3 1.2 Crear a partir de una plantilla... 3 1.3 Guardar y reutilizar plantillas... 3 2. Cambiar los márgenes de página...
Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto
UNIDAD 5. calc OPCIONES AVANZADAS. CURSO: LibreOffice
UNIDAD 5 OPCIONES AVANZADAS CURSO: LibreOffice calc 1 Introducción y Objetivos Hasta el momento hemos visto parte de lo fundamental de las hojas de cálculo. Insertar datos, copiar, pegar y borrar, pero
Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Estructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1
Estructura de Datos Arreglos Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1 Introducción Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización
ACCEDER A BITÁCORA DE TRABAJO SQL SERVER
ACCEDER A BITÁCORA DE TRABAJO SQL SERVER Función fn_dblog Se trata de una función no documentada del sistema, por lo cual, tiene la ventaja de poder utilizarse en la cláusula FROM de una sentencia SELECT.
PHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Profesor(a): Ing. Miriam Cerón Brito
Área Académica: Informática Tema: Hoja electrónica Profesor(a): Ing. Miriam Cerón Brito Periodo: Enero Junio 2014 Abstract: This presentation show the spreadsheet's characteristics and show the principals
Jornadas sobre Gnu/Linex: Uso de Software Libre en las Administraciones públicas. Sonia Pizarro Redondo
OpenOffice Base Jornadas sobre Gnu/Linex: Uso de Software Libre en las Administraciones públicas. Sonia Pizarro Redondo OpenOffice Base Pertenece a la Suite de OpenOffice Es uno de los componentes más
Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot
Algoritmos de ordenación Análisis y Diseño de Algoritmos Algoritmos de ordenación Algoritmos básicos: Θ(n 2 ) Ordenación por inserción Ordenación por selección Ordenación por intercambio directo (burbuja)
LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO VALE UN PUNTO
EXAMEN FINAL DE PRÁCTICAS DE BASES DE DATOS 18 de junio de 2003 Nombre: LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO
FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005
Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas
Estructura de datos (arreglos) Vectores y Matrices
Apunte del curso PROGRAMACIÓN (FI-UBA,, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructura de datos (arreglos) Hasta aquí se han visto distintos tipos de estructuras
