1 7.1 Búsqueda Externa Los algoritmos vistos hasta ahora son adecuados cuando todos los datos están en memoria principal. Gran volúmen de datos: se recurre.

Slides:



Advertisements
Presentaciones similares
ÍNDICES.
Advertisements

5. Estructuras no lineales estáticas y dinámicas
ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
IBD Clase 7.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
ÁRBOLES EN C UNIVERSIDAD “ALONSO DE OJEDA” Facultad de Ingeniería
1 Extensión de un Estructura de Datos Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Programación y Estructuras de Datos
ÁRBOLES BINARIOS DE BUSQUEDA
Operaciones sobre un árbol
Estructura de Datos en memoria secundaria
ESTRUCTURAS DE DATOS AVANZADAS
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Cont. Arbol Binario de Búsqueda
Árboles balanceados AVL
Integrantes: Esteban Jiménez Guesseppe Lozada Mario Rodriguez Gustavo Tenorio Fabio.
ÁRBOLES DE EXPRESION.
Cont. Arbol Binario de Búsqueda (2). Sobre los recorridos Las versiones recursivas de los recorridos son costosas debido a la gran cantidad de llamadas.
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
Ana Lilia Laureano Cruces UAM-A
Estructura de Datos Lineales
Material de apoyo Unidad 4 Estructura de datos
Árboles.
ÁRBOLES BINARIOS DE BÚSQUEDA
Estructuras de Datos MC Beatriz Beltrán Martínez.
Definiciones: conjuntos, grafos, y árboles
Árboles, montículos y grafos Cola de prioridades, montículos
Tópicos I Árboles, montículos y grafos
Ordenamiento, Heapsort y Colas de prioridad
Heaps Mauro Maldonado Abril/2005. Introducción La estructura heap es frecuentemente usada para implementar colas de prioridad. En este tipo de colas,
ARBOLES ESTRUCTURAS DE DATOS.
Estructura de Datos y Algoritmos
Diseño y análisis de algoritmos
Árboles binarios de búsqueda
Arboles M.C. José Andrés Vázquez FCC/BUAP
ARBOLES ESTRUCTURAS DE DATOS.
Árboles B M.C. José Andrés Vázquez Flores Estructuras de Datos / Primavera 2014.
Definición, propiedades, recorridos x a q yb w e vu fo.
Almacenamiento y Recuperacion de Información- Arbol AVL
Árboles AVL por Jorge Riera Ledesma Departamento de Estadística, Investigación Operativa Y Computación.
Estructuras de Datos1 ABB´s balanceados por peso Balance perfecto Para cada nodo, el número de nodos del subárbol izquierdo y el número de nodos del subárbol.
Árboles.
Árboles Recomendado: 1. Nivelación Funciones
Árboles Binarios Estructuras de Datos.
Árboles de Búsqueda Binaria
Con el objeto de mejorar el rendimiento en la búsqueda surgen los árboles balanceados. La idea central de estos es la de realizar reacomodó o balanceos.
1 Arboles AVL Introducción Arboles AVL (Adel’son-Vel’skii and Landis.
Estructura de Datos M.C. José Andrés Vázquez Flores FCC/BUAP
Diccionarios El TDA diccionario Búsqueda binaria
DISEÑO DE UNA ESTRUCTURA DE INDEXACION DE DATOS TOPOLOGICAMENTE CONTENIDO.
Unidad 6: Árboles.
1 Árboles de Búsqueda Binaria Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Arboles B (búsqueda externa)
1 B-Trees y AVL Trees. 2 AVL Trees: Topicos Balance en los Trees Chequear el Balance Insertar Single y Doble Rotaciones.
Punteros, referencias Listas enlazadas Arboles
Heap Fibonacci heap de Fibonacci es una estructura de datos similar a un heap binomial pero con mejor coste amortizado. se utiliza para mejorar el tiempo.
Algoritmos y estructura de datos en I.O.
METODOS DE BUSQUEDA EN C++ Oscar Michel Ruiz León
Árboles Binarios de Búsqueda (ABB)
Arboles Binarios.
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2015.

Matemáticas Discretas MISTI
Ing. Shirley Coque Carrera Ingeniería de Sistemas
M.C. Meliza Contreras González
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Algoritmos voraces Códigos de Huffman. Descripción del problema Tenemos un archivo de entrada. Asumiremos que el archivo está compuesto de bytes (enteros.
Transcripción de la presentación:

1 7.1 Búsqueda Externa Los algoritmos vistos hasta ahora son adecuados cuando todos los datos están en memoria principal. Gran volúmen de datos: se recurre a memoria secundatria (almacenamiento externo) incluso para las claves. Acceso: siempre igual a un bloque entero (página) de datos, por ejemplo: 4096 Bytes. Effizienz: Número de accesos a una página debe mantenerse al mínimo!

2 Para búsqueda externa: Variante de árboles de búsqueda con: Knoten = Seite Vielwegsuchbäume (árboles de búsqueda de múltiples caminos)

3 Definición (Arbol de busqueda de multiples caminos) El arbol vacio es {}. Sean T 0,..., T n Arboles de busqueda de multiples caminos de un conjunto de claves S, und sea k 1,...,k n una lista de claves con k 1 <...< k n. Entonces la serie T 0 k 1 T 1 k 2 T 2 k k n T n Es un Arbol de busqueda de multiples caminos cuando: Para todas las claves x deT 0 se cumple: x < k 1 Para i=1,...,n-1, para todas las claves x en T i se cumple : k i < x < k i +1, Para cada clave x de T n se cumple: k n < x.

4 Árbol B Definition Un árbol B de orden m ist es un Arbol de busqueda de multiples caminos con las siguientes características 1  #(claves en la raíz)  2m y m  #(claves en nodo interno)  2m Todos los caminos de la raíz a una hoja son igual de largo. Cada nodo con s claves tiene exactamente s+1 hijos.

5 Beispiel: Ein B-Baum der Ordnung 2:

6 Abschätzungen zu B-Bäumen Un árbol minimal de orden m y altura h tiene: Numero de nodos en el árbol izquierdo y derecho 1 + (m+1) + (m+1) (m+1) h-1 = ( (m+1) h – 1) / m. La raiz tiene una clave, todos los otros nodos tiene m claves. En total: Numero de claves n en un B-Baum de altura h: n  2 (m+1) h – 1 Por lo tanto se cumple que para todo B-Baum de altura h con n claves: h  log m+1 ((n+1)/2).

7 Ejemplo Por lo tanto se cumple que para todo B-Baum de altura h con n claves : h  log m+1 ((n+1)/2). Ejemplo: para Tamaño de página : 1 KByte y Cada entrada correspondiente a una clave: 8 Byte, Se puede elegir m=63 y para Un número de datos de n= Se tiene h  log < 4 y con esto h max = 3.

8 Algoritmos para insertar y eliminar claves en un árbol B Algorithmus insert (root, x) //insertar clave x en el árbol con raíz root buscar x en el árbol de raíz root ; si no se encuentra { sea p hoja donde se terminó la búsqueda; insertar x en la posición adecuada (ordenado); si p tiene 2m+1 claves {overflow(p)} }

9 Algorithmus overflow (p) = split (p) Algorithmus split (p) primer caso: p tiene un padre q. Dividir el nodo rebalsado. La clave del medio va al padre. Anmerkung: la división se tiene que repetir hasta que se llegue a la raiz si es necesario, con lo que la altura del árbol crece en 1. Algorithmus Split (1)

10 Algorithmus split (p) segundo caso: p es la raiz. Dividir el nodo rebalsado. Abrir un nuevo nivel hacia arriba con una nueva raíz que contenga la clave que divide. Algorithmus Split (2)

11 //borrar clave x del árbol con raíz root buscar x en el árbol con raíz root; cuando se encuentra x { si x està en un nodo interno { intercambiar x con la clave siguiente mayor x' // si x está en un nodo interno, hay una clave // siguiente mayor que está en una hoja } sea p la hoja que contiene x; borrar x de p; si p no es la raíz { si p queda con m-1 claves {underflow (p)} } } Algorithmus delete (root,x)

12 Algorithmus underflow (p) si p tiene un nodo hermano con s>m { balance (p,p') } else // como p no es la raíz, un hermano de p tiene que tener por lo menos m claves { sea p' hermano de p; merge (p,p')}

13 Algorithmus balance (p, p') // balancear p con su hermano p' (s > m, r =  (m+s)/2  -m )

14 Algorithmus merge (p,p') // unir p con su hermano realizar las siguientes operaciones: Al final : Si ( q != raíz) und (q tiene m-1 claves) underflow (q) Else (si (q= raíz) y (q vacío)) {liberar q y hacer p la nueva raíz}

15 Rekursion Cuando por un underflow se llega a un merge, debe eventualmente hacerse underflow de un nivel más arriba. Esto puede extenderse hasta la raíz.

16 Ejemplo: ärbol B de Orden 2

17 Costo Sea m el orden del B-Baums, n el número de claves. Costo de la búsqueda, inserción y eliminación: O(h) = O(log m+1 ((n+1)/2) ) = O(log m+1 (n)).

18 Anmerkung: B-Bäume auch als interne Speicherstruktur zu gebrauchen: Besonders: B-Bäume der Ordnung 1 (dann nur 1 oder 2 Schlüssel pro Knoten – keine aufwändige Suche innerhalb von Knoten). Aufwand für Suchen, Einfügen, Löschen: O(log n).

19 Anmerkung: Speicherplatzausnutzung: über 50% Grund: die Bedingung: 1/2k  #(Schlüssel in Knoten)  k Für Knoten  Wurzel (k=2m)

20 Noch höhere Speicherplatzausnutzung möglich, z.B. über 66% mit Bedingung: 2/3k  #(Schlüssel in Knoten)  k für alle Knoten mit Ausnahme der Wurzel und ihrer Kinder. Erreichbar durch 1) modifiziertes Balancieren auch beim Einfügen und 2) split erst, wenn zwei Nachbarn ganz voll. Nachteil: Häufigere Reorganisation beim Einfügen und Löschen notwendig.