Un montón de Fibonnaci admite las siguientes operaciones:
insert(key, data)
: agrega un nuevo elemento a la estructura de datosfind-min()
: devuelve un puntero al elemento con clave mínimadelete-min()
: elimina el elemento con clave mínimadelete(node)
: elimina el elemento señalado pornode
decrease-key(node)
: disminuye la clave del elemento señalado pornode
Todas las operaciones que no son de eliminación son tiempo (amortizado), y las operaciones de eliminación son tiempo amortizado.
¿Hay implementaciones de una cola prioritaria que también sea compatible increase-key(node)
con el tiempo (amortizado)?
Respuestas:
Suponga que tiene una cola de prioridad que tiene , y . Luego, el siguiente es un algoritmo de clasificación que toma tiempo :O(1) O(n)
find-min
increase-key
insert
fuente
(de|in)crease-key
solo hacía más o menos uno.