Está en la página 1de 3

Heaps

Nicolas Gutierrez Castilla , Eyner Pariguana Medina,National University of San Agustin


L
os Heaps son estructuras de datos de
la forma de un arbol. Existen los
Heaps maximos donde su principal car-
acterstica es que el nodo padre tiene un valor
mayor que el de sus hijos, por otra parte los
Heaps mnimos se distinguen por lo contrario
el nodo padre tiene un valor menor que el de
sus hijos. Una estructura Heap es la imple-
mentacion mas basica y habitual de una cola
de prioridad.
1 Conceptos Iniciales
1.1 Binary Heap:
Es un arbol binario balanceado y semi-completo. En
su insercion se llena de izquierda a derecha. Cada
vez que se va llenando nodo tras nodo, se puede dar
el caso a menudo que se inserte un nodo a esta es-
tructura, y se encuentre que su valor es menor que
el valor de su padre si esta estructura en un Heap
mnimo, o que el valor de dicho nodo es mayor que
el valor de su padre en un Heap maximo, en estos
tipos de casos no cumple con las propiedades de una
estructura Heap, para ello el mtodo de solucin es
hacer un swap de valores entre el padre y el nodo
recien insertado, y llamar dicha funcion recursiva-
mente esta vez con el padre de este nodo, hasta que
llegue a la raz o cumpla con la condicin en alg un
nivel de un Heap mnimo o maximo (dependiendo
del caso). En su eliminaci on, se procede a retirar al
primer elemento o raz y reemplazarlo por el ultimo
elemento ingresado. Es un caso mas sencillo en la
estructura de los Heaps comparado con los siguientes
casos que se vera.
Figure 1: Ejemplo de Heap
1.2 Binomial Heap:
Es un conjunto de arboles binomiales. Un rbol bino-
mial en su mnima expresion sera un nodo, debido
a que ese es el caso mnimo, de tal forma ese sera el
caso base o rbol binomial de orden 0. Ahora de man-
era recursiva un rbol de nivel K es un conjunto de K
arboles binomiales es decir contiene a los arboles de
orden k-1, k-2,.., orden 2, orden 1, orden 0 (un solo
nodo), donde la raz de dicho arbol tendra k hijos.
El n umero de sus nodos es 2 elevado al exponente k.
Supongamos que un Binomial Heap H tiene un
total de n nodos. El n umero de rboles binomiales es
igual al n umero de unos de la representaci on binaria
de n . Eliminacion de un nodo , para eliminar un
nodo x decrementamos su clave hasta - para hacerlo
subir hasta la raz y luego extraemos el elemento
minimo .Es una operacin de O(log n ).
Page 1 of 3
Figure 2: Denicion recursiva de arboles binomiales
Figure 3:

Arboles binomiales B
0
hastaB
4
Figure 4: Ejemplo de Heap Binomial
1.3 Fibonacci Heap:
Es un conjunto de arboles ordenados , aunque no son
unicamente arboles binomales.Son muy parecidos
a los heaps binomiales pero tienen la ventaja de
que las operaciones en donde no se eliminen nodos
son de O(1). La eliminacin es similar a la de los
heaps binomiales . Esta estructura puede ser usada
para calcular el arbol mnimo de un grafo mediante
el algoritmo de Prim mejorando as su tiempo de
ejecucion asintotico, como tambien puede ser usado
para calcular el camino ms corto en un grafo mediante
el algoritmo de Dijkstra.
Figure 5: Ejemplo de Heap de Fibonaci
Figure 6: Representacion de Heaps de Fibonaci
Page 2 of 3
2 Comparaci on : Inserci on ,
Eliminaci on , Get Min, Decreace
Key :
Antes de ver los diferentes casos de este tipo de
estructura, primero se vera una breve comparacion
entre Fibonacci Heap y Binomial Heap debido a que
son parecidos. La estructura Fibonacci Heap sus
operaciones insertar, encontrar el mnimo, disminuir
la clave y la uni on trabajan con un tiempo constante
debido a la amortizacin de la estructura, en cambio a
las operaciones de borrado tiene un coste logartmico
amortizado, esto signica que en una secuencia de
a operaciones del primer grupo y b operaciones del
segundo grupo se demorara en el peor caso (a + b
log (n) ), mientras que en un Binomial Heap su peor
caso sera ( ( a + b ) log (n) ), de esta manera un
Fibonacci Heap es mucho mejor que un Binomial
Heap.
Operacion Binay Binomial Fibonacci
Heap Heap Heap
Insercion Log N Log N 1
Eliminacion Log N Log N Log N
Get - Min 1 Log N 1
Decrease - Key Log N Log N 1
References
[1] Alfred Aho, Jerey Ullman, and John
Hopcroft. Data structures and Algo-rithms.
Addison Wesley, 1st edition edition , 1983.
Gilles Brassard. Fundamentos de Algoritmia.
Prentice Hall, 1ra edicion edition, 2000.
Thomas Cormen. Introduction to Algorithms.
The MIT Press, 3rd edition edition, 2009.
Donald Knuth. Art of Computer Programming.
Addison Wesley Professional, 3rd edition
edition, 1998.
William Press, Brian Flannery, Saul Teukolsky,
and William Vetterling. Numerical Recipes in
C. Cambridge University Press, 2nd edition
edition,1992.
Robert Sedgewick. Algorithms. Addison Wesley
Professional, 4th edition, 2011.
Steve Skiena. The Algorithm Design Manual.
Springer, corrected edition , 1997.
Montculo (Informatica) Wikipedia
Fibonacci Heaps University Princeton
Binary and Binomial heaps University Princeton
Page 3 of 3

También podría gustarte