Introduction to Algorithms, Third Edition


Fibonacci heaps in theory and practice



Download 4,84 Mb.
Pdf ko'rish
bet342/618
Sana07.04.2022
Hajmi4,84 Mb.
#534272
1   ...   338   339   340   341   342   343   344   345   ...   618
Bog'liq
Introduction-to-algorithms-3rd-edition

Fibonacci heaps in theory and practice
From a theoretical standpoint, Fibonacci heaps are especially desirable when the
number of E
XTRACT
-M
IN
and D
ELETE
operations is small relative to the number
of other operations performed. This situation arises in many applications. For
example, some algorithms for graph problems may call D
ECREASE
-K
EY
once per
edge. For dense graphs, which have many edges, the
‚.1/
amortized time of each
call of D
ECREASE
-K
EY
adds up to a big improvement over the
‚.
lg
n/
worst-case
time of binary heaps. Fast algorithms for problems such as computing minimum
spanning trees (Chapter 23) and finding single-source shortest paths (Chapter 24)
make essential use of Fibonacci heaps.


19.1
Structure of Fibonacci heaps
507
From a practical point of view, however, the constant factors and program-
ming complexity of Fibonacci heaps make them less desirable than ordinary binary
(or
k
-ary) heaps for most applications, except for certain applications that manage
large amounts of data. Thus, Fibonacci heaps are predominantly of theoretical in-
terest. If a much simpler data structure with the same amortized time bounds as
Fibonacci heaps were developed, it would be of practical use as well.
Both binary heaps and Fibonacci heaps are inefficient in how they support the
operation S
EARCH
; it can take a while to find an element with a given key. For this
reason, operations such as D
ECREASE
-K
EY
and D
ELETE
that refer to a given ele-
ment require a pointer to that element as part of their input. As in our discussion of
priority queues in Section 6.5, when we use a mergeable heap in an application, we
often store a handle to the corresponding application object in each mergeable-heap
element, as well as a handle to the corresponding mergeable-heap element in each
application object. The exact nature of these handles depends on the application
and its implementation.
Like several other data structures that we have seen, Fibonacci heaps are based
on rooted trees. We represent each element by a node within a tree, and each
node has a
key
attribute. For the remainder of this chapter, we shall use the term
“node” instead of “element.” We shall also ignore issues of allocating nodes prior
to insertion and freeing nodes following deletion, assuming instead that the code
calling the heap procedures deals with these details.
Section 19.1 defines Fibonacci heaps, discusses how we represent them, and
presents the potential function used for their amortized analysis. Section 19.2
shows how to implement the mergeable-heap operations and achieve the amortized
time bounds shown in Figure 19.1. The remaining two operations, D
ECREASE
-
K
EY
and D
ELETE
, form the focus of Section 19.3. Finally, Section 19.4 finishes a
key part of the analysis and also explains the curious name of the data structure.

Download 4,84 Mb.

Do'stlaringiz bilan baham:
1   ...   338   339   340   341   342   343   344   345   ...   618




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish