Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Heap-size length[A]
Raz del rbol A[1]
Heaps
4
Propiedad Heap
MAX-HEAP: A[PARENT(i)] A[i]
MIN-HEAP: A[PARENT(i)] A[i]
Altura de un nodo
# arcos de la ruta simple ms larga del nodo a una hoja
Manipulacin de heaps
Entrada
Arreglo A y un ndice i
Asume que LEFT(i) y RIGHT(i) son heaps
A[i] puede ser menor que sus hijos
Viola la propiedad de un heap (MAX-HEAP)
Heapify
Mueve A[i] en el heap
El subrbol con raz en el ndice i se convierte en un heap
Heapify
6
Algoritmo Heapify
Llamada recursiva a Heapify para sus is subrboles, si no
cumplen con la propiedad del heap
Heapify
7
Heap-size[A] 10
A[2], i = 2 no cumple con la propiedad de un heap (MAX-HEAP)
Heapify
8
Heapify
9
T(n) = O(lgn)
Alternativa
Caracterizar tiempo de ejecucin de HEAPIFY
sobre un nodo de altura h como: O(h)
Construccin del Heap
10
Algoritmo BuildHeap
Construccin del Heap
12
Anlisis BuildHeap
13
BUILD-HEAP: O(n)
for loop: n-1 veces
Intercambio de elementos: O(1)
MAX-HEAPIFY: O(lgn)
Total time: O(nlgn)
Una implementacin buena de QuickSort es mejor
que HeapSort
Colas con Prioridades (Priority Queues)
18
Operaciones
Insert(S,x),
inserta x en S, S S {x}
Maximum(S), regresa el elemento de S con llave ms alta
Extract-Max(S), remueve y regresa el elemento de S con llave ms
alta
Aplicaciones de Priority Queues
19
Heap-Extract-MAX O(lgn)
Heap-Insert O(lgn)
Heap-Increase-Key O(lgn)
QuickSort
22
n
= ( k ) Serie Aritmtica
n
k =1 1
n k = 2
n(n + 1)
= k k =1
k =1 = ( n 2 )
= ( n 2 )
Performance de QuickSort
28
Particionamiento balanceado
Caso promedio ms cerca del mejor caso que del peor
Particionamiento balanceado
Cada nivel tiene costo n