1 B-Trees y AVL Trees. 2 AVL Trees: Topicos Balance en los Trees Chequear el Balance Insertar Single y Doble Rotaciones.

Slides:



Advertisements
Presentaciones similares
ÍNDICES.
Advertisements

ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
IBD Clase 6.
IBD Clase 7.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
ÁRBOLES EN C UNIVERSIDAD “ALONSO DE OJEDA” Facultad de Ingeniería
Programación y Estructuras de Datos
ÁRBOLES BINARIOS DE BUSQUEDA
Operaciones sobre un árbol
Estructura de Datos en memoria secundaria
Tema 4 Árboles. Conceptos Generales..
ESTRUCTURAS DE DATOS AVANZADAS
Árboles balanceados AVL
Integrantes: Esteban Jiménez Guesseppe Lozada Mario Rodriguez Gustavo Tenorio Fabio.
ÁRBOLES DE EXPRESION.
Arboles (Trees) Arboles Arboles binarios Recorridos de árboles
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
Árboles.
ÁRBOLES BINARIOS DE BÚSQUEDA
Estructuras de Datos MC Beatriz Beltrán Martínez.
La organización indexada está formada por registros que se encuentran en conjunto de datos que se graban en un disco secuencialmente, llamado área primaria.
Árboles, montículos y grafos Cola de prioridades, montículos
Tópicos I Árboles, montículos y grafos
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
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.
Almacenamiento y Recuperacion de Información- Arbol AVL
ÁRBOLES BINARIOS DE BÚSQUEDA BALANCEADOS
Á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.
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.

Árboles Recomendado: 1. Nivelación Funciones
Árboles Binarios Estructuras de Datos.
Programa de teoría Parte I. Estructuras de Datos. 1. Abstracciones y especificaciones. 2. Conjuntos y diccionarios. 3. Representación de conjuntos mediante.
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.
7.  El TDA Diccionario.
Estructura de Datos M.C. José Andrés Vázquez Flores FCC/BUAP
Tema 4. Representación de conjuntos mediante árboles.
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Arboles B (búsqueda externa)
Arboles M.C. José Andrés Vázquez FCC/BUAP
ARBOLES GENERALIZADOS
Árboles Binarios de Búsqueda (ABB)
Arboles Binarios.
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Árboles Binarios * Recorridos * Tipo
7.  El TDA Diccionario.
Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2015.
Unidad 8 Árboles B Bibliografía: “Algoritmos y Estructuras de datos” de Aguilar y Martinez. Unidad 16 Autor: Ing Rolando Simon Titiosky.
Matemáticas Discretas MISTI
1 Ordenando. 2 Sorting Input Una secuencia de numeros a 1, a 2, a 3, …, a n Output Una permutación (reorden) a’ 1, a’ 2, a’ 3, …, a’ n de la input, tal.
M.C. Meliza Contreras González
M.C. Meliza Contreras González
ESTRUCTURA DE DATOS II Ing. Freddy Melgar Algarañaz Árboles Binarios *Recorridos *Tipo.
Arboles Binarios: AVL (Adelson – Velskii - Landis)
7. El TDA Diccionario. ¿Qué es un Diccionario ? Dado un conjunto de elementos {X 1, X 2,..., X N }, todos distintos entre sí, se desea almacenarlos en.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Árboles Binarios * Recorridos * Tipo
Heaps.
ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS.
Arboles M.C. José Andrés Vázquez FCC/BUAP
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
Transcripción de la presentación:

1 B-Trees y AVL Trees

2 AVL Trees: Topicos Balance en los Trees Chequear el Balance Insertar Single y Doble Rotaciones

3 Evitar malos Trees?

4 Idea #1 Los subarboles tienen la misma altura.

5 Idea #2 Para todo nodo en el tree, los subarboles izq. y der. Tienen la misma altura. Rigidez

6 AVL Trees Binary search trees ABB, con una propiedad adicional. Para todo nodo en el tree, la altura de los subarboles izq. y der. difieren en a lo más en 1 de altura.

7 Chequear Balance ,x 5,x

8 Ejemplo

9 Computando la Height

10 El AVL tree mas pequeño de height 7 N(h) = # nodos en el más pequeño AVL tree de altura h. N(h) = N(h-1) + N(h-2) + 1 N(0) = 1, N(1) = 2 N =  (2 h ). Equivalentemente, h = O(log N).

11 Operaciones Find, FindMin, FindMax O(log N) Insertar Necesita mantener el balance O(log N) Delete Complicado

12 Single Rotacion CB A y x C BA y x

13 Single Rotacion Raiz de Single Rotacion debe ser el nodo 3. Nodo 3 es el nodo con diferencia height = CB A y x C BA y x x y x y 9

14 Single Rotacion que no trabaja CB A y x C BA y x

15 Double Rotacion C D B A z x y CDBA z x y

16 Double Rotacion C D B A z x y CDBA z x y

17 Double Rotacion Ejemplo x y z Tree luego de insert 7: y C D B A z x y CDBA z x y z x A B C D DC BA La root de rotacion es x(4), donde la diferencia de height es 2

18 AVL Tree Insert, Delete 2 tipos de rotacion - single, doble Rotacion es necesaria a lo menos una vez! La root de rotacion es donde la diferencia de height es 2

19 B-Trees de orden M Un M-ary tree. Todo nodo tiene a lo más M hijos. Hojas Todos los datos está lamacenados en las leaves. Todas las leaves estan a la misma depth. Leaves (except root) tiene entre  M/2  y M records Nodo Interior M punteros a M children. M-1 claves: la más pequeña keys se encuentra en M-1 subarbol derecho. La root tiene entre 1 y M children. Los nodos interiores tiene entre  M/2  y M children. M=3: 2-3 Trees M=4: Trees

20 12,1520,2325,26,2832,41,4348,52,5356,6172,88 25:48 16:2032:--56:72 16,18 Insert 12,1520,2325,26,2832,41,4348,52,50, 5356,6172,88 25:48 16:2032:--56:72 16,18 Insert 50 12,1520,2325,26,2832,41,4348,50,5253, 56,6172,88 25:48 16:2032:--53:72 16,18 Insert 50 (cont) 53 es movido a los vecinos del nodo hermano Original

21 Insert 49 12,1520,2325,26,2832,41,4348,49, 50,5253, 56,6172,88 25:48 16:2032:--53:72 16,18 Split el nodo Envia un hijo a los vecinos del hermano 12,1520,2325,26,2832,41,4348,4953, 56,6172,88 25:48 16:2032:--50:53:72 16,1850,52 12,1520,2325,26,2832,41,4348,4953, 56,6172,88 25:50 16:2032:4853:72 16,1850,52

22 Insert 27 Split el nodo Split otra vez. 12,1520,2325,26,27,2832,41,4348,4953, 56,6172,88 25:50 16:2032:4853:72 16,1850,52 12,1520,2325,2632,41,4348,4953, 56,6172,88 25:50 16:2027:32:4853:72 16,1850,5227,28 48,-- 12,1520,2325,2632,41,4348,4953, 56,6172,88 25:32:50 16:2027:--53:72 16,1850,5227,28

23 48,-- 12,1520,2325,2632,41,4348,4953, 56,6172,88 25:-- 16:2027:--53:72 16,1850,5227,28 50:-- Split la root 32:-- Insert 27 (cont’)

24 27,2832,41,4350,5253,56,6172,88 25:-- 27:--53:72 48,4912,1520,23 16:20 16,1825,26 48:-- 50:-- 32:-- 27,2832,41,4350,5256,6172,88 25:-- 27:--56:72 48,4912,1520,23 16:20 16,1825,26 48:-- 50:-- 32:-- Delete

25 27,2832,4150,5256,6172,88 25:-- 27:--56:72 43,4912,1520,23 16:20 16,1825,26 43:-- 50:-- 32:-- 27,2832,41,4950,5256,6172,88 25:-- 27:--56:72 12,1520,23 16:20 16,1825,26 43:-- 50:-- 32:--

26 27,2832,41,4950,5256,6172,88 25:-- 27:--72:-- 12,1520,23 16:20 16,1825,26 50:-- 56:-- 32:-- 27,2832,41,4950,5256,72,88 25:-- 27:--72:-- 12,1520,23 16:20 16,1825,26 50:-- 56:-- 32:--

27 27,2832,41,4950,5256,72,88 25:-- 27:-- 12,1520,23 16:20 16,1825,26 50:56 56:-- 32:-- 27,2832,41,4950,5256,72,88 25:32 27:-- 12,1520,23 16:20 16,1825,26 50:56 32:--

28 27,2832,41,4950,5256,72,88 25:32 27:-- 12,1520,23 16:20 16,1825,26 50:56 32,41,4950,5256,72,88 25:32 27:-- 12,1520,23 16:20 16,1825,26,28 50:56 32,41,4950,5256,72,88 20:32 25:-- 12,1520,23 16:-- 16,1825,26,28 50:56

29 Operaciones sobre un B-Trees Find: Atravesar el tree Insert Hallar e insertar Dar un camino o Split Delete Hallar y borrar Combinar 32,41,4350, 5354,56,6172,88 54:72 48,49 48:-- 50:--

30 Topicos Depth de un B-Trees Tiempo de Find, Insert, Delete

31 Depth de B-Trees 20,23 20:-- 16,1827,28 25:-- 27:-- 25,2632,4150,5272,88 72:-- 48,49 48:-- 50:-- 32:--

32 27,2832,41,4350,5253,56,6172,88 25:-- 27:--53:72 48,4912,1520,23 16:20 16,1825,26 48:-- 50:-- 32:-- 12:34:38:42:55:64:69:75:--:--:-- O(M) O(log M) O(log M N) Find

33 27,2832,41,4350,5253,56 25:-- 27:--53:72 48,4920,23 20:-- 16,1825,26 48:-- 50:-- 32:-- 12:34:38:42:55:64:69:75:--:--:-- O(M): inserta un elemento en la lista O(log M N) Insert y Delete O(log N)

34 Running Time Find Cada nodo, O(log M) para determinar la rama a considerar (binary search) O(log M N) nodos para visitar Total O(log N) Insert y Delete require O(M) para fijar lo que se desea. O(M log M N) = O((M/log M) log N)

35 B-Trees en Memoria Nodo Interior M punteros y M-1 keys Nodo Leaf M’ datos (o M’ punteros a datos)

36 12:34:38:42:55:64:69:--:-- O( t 2 + t 1 log M) 27,2832,41,4350,5253,56,6172,88 25:-- 27:--53:72 48,4912,1520,23 16:20 16,1825,26 48:-- 50:-- 32:-- O(log M N) Find t 1 : main memory tiempo de aceso para todo byte. t 2 : todo disco acceso de un block

37 27,2832,41,4350,5253,56 25:-- 27:--53:72 48,4920,23 20:-- 16,1825,26 48:-- 50:-- 32:-- O(log M N) Insert y Delete O( t 2 + t 1 M) 12:34:38:42:55:64:69:--:--