Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructura de Datos: Colas Prioridad
Estructura de Datos: Colas Prioridad
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Estructura de Datos
Clase 13: Colas de prioridad Heaps Binarios
Carlos Contreras Bolton
Universidad Andr
es Bello
Facultad de Ingeniera
13 de mayo de 2014
1/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Contenido
1 Introducci
on
2 Heap
3 Representaci
on
4 Operaciones del Heap
5 Eficiencia de las Operaciones
6 Heapsort
2/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Introduccion
3/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Introduccion
4/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heap
Caractersticas
Propiedad estructural:
Es un Arbol
Binario Completo. Propiedades:
Su altura es a lo sumo (log n).
Admite una representaci
on implcita sobre un arreglo.
Propiedad de orden:
El valor de cualquier nodo es menor o igual que el de sus
hijos (Min-Heap).
De manera analoga se define un Max-heap.
5/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heap
Caractersticas
Arbol
binario perfectamente balanceado.
Todas las ramas del arbol son secuencias ordenadas.
La raz del arbol es el nodo de valor mnimo (o maximo
en un Max-Heap).
Todo subarbol de un Heap es tambien un Heap.
(no obligatorio): es izquierdista, o sea, el u
ltimo nivel
esta lleno desde la izquierda.
(Ojo: no es un ABB, ni una estructura totalmente
ordenada!)
6/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Representacion
7/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Representacion
Arreglos
Ventajas:
Muy eficientes en terminos de espacio (ver
desventajas!).
Facilidad de navegaci
on.
Desventaja:
Implementaci
on estatica (puede ser necesario duplicar el
arreglo (o achicarlo) a medida que se agregan/eliminan
elementos.
8/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Representacion
Arreglos
i = posicion en el arreglo.
Hijo Izquierdo = 2i.
Hijo Derecho = 2i + 1.
Padre = (int)i/2.
13 21
1 2
16 24 31 19 68 65 26
3 4 5 6 7 8 9
32
10
9/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
10/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Insertar
Ejemplo
13 21 16
1 2 3
24 31 19 68 65 26 32
4 5 6 7 8 9 10
14
11
11/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Insertar
Ejemplo
13 21 16
1 2 3
24 14 19 68 65 26
4
5
6 7 8 9
32 31
10 11
12/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Insertar
Ejemplo
13 14
1
2
16 24 21 19 68 65 26
3 4 5 6 7 8 9
32 31
10 11
13/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
14/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Eliminar
Ejemplo
13 14 16 19 21 19
1 2 3 4 5 6
68 65 26 32 31
7 8 9 10 11
15/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Eliminar
Ejemplo
31 14 16 19 21 19 68 65 26 32
1
10 11
16/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Eliminar
Ejemplo
14 31
1
2
16 19 21 19 68 65 26
3 4 5 6 7 8 9
32
10 11
17/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Eliminar
Ejemplo
14 19 16
1 2 3
31 21 19 68 65 26 32
4
10 11
18/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Eliminar
Ejemplo
14 19 16
1 2 3
26 21 19 68 65 31
4 5 6 7 8
9
32
10 11
19/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Operaciones
Acceder
Buscar
Insertar
Eliminar
Arreglo
Estatico
O(1)
O(n)
Arreglo
Lista
Dinamico Simplemente
Enlazada
O(1)
O(n)
O(n)
O(n)
O(n)
O(1)
O(n)
O(1)
Lista
Arbol
Binario
Doblemente de Busqueda
Enlazada
O(n)
O(log n)
O(n)
O(log n)
O(1)
O(log n)
O(1)
O(log n)
Heap
Binario
1
O(log n)
O(log n)
20/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Otros Heaps
Eficiencia
Heap
Binario
Binomial
Fibonacci
Buscar
Extraer
Mn/Max Mn/Max
O(1)
O(log(n))
O(log(n)) O(log(n))
O(1)
O(log(n))*
Dism./Aum.
Insertar
Eliminar
Mezclar
Clave
O(log(n)) O(log(n)) O(log(n)) O(m + n)
O(log(n)) O(log(n)) O(log(n)) O(log(n))
O(1)*
O(1)
O(log(n))*
O(1)
(*)Tiempo Amortizado.
21/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Funcionamiento
Para i = n hasta 1:
Intercambiar posici
on 1 con i.
Hundir i.
22/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
1
19
2 3 4 5 6 7
5 18 2 3 23 16
23/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
Hundir i = 3.
24/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
Hundir i = 2.
25/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
Hundir i = 1.
26/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
Intercambiar 1 con 7.
27/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
Intercambiar 1 con 6.
28/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
Intercambiar 1 con 5.
29/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
Intercambiar 1 con 4.
30/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
Intercambiar 1 con 3.
31/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
Intercambiar 1 con 2.
32/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Ejemplo
33/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Eficiencia
34/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Heapsort
Eficiencia
35/36
Introducci
on Heap Representaci
on Operaciones del Heap Eficiencia de las Operaciones Heapsort
Tarea
Investigar sobre Heap Binomial y Fibonacci.
El Informe debe contener:
Introduccion.
Heap Binario.
Heap Fibonacci.
Conclusiones.
Bibliografa.
Observaciones:
Usar Formato APA para la bibliografa (investigar).
No se acepta referencia de paginas web (wikipedia,
apuntes, etc), en caso de usar una web, nota mnima.
Debe usar referencias de libros, artculos cientficos,
conferencias, etc.
En caso de no existir referencias, nota mnima.
Carlos Contreras Bolton Estructura de Datos
36/36