![](/user_photo/1144_wzNgE.jpg)
Полезная методичка
.pdfш (о р о ни кучи и о но о инст нно о эл м нт и слияни с у сущ ст ующим р ом ысоты 1).
Для ок т льст нной оц нки м функцию пот нци - ло F (i) , р ную числу р ь иноми льной куч и i эл - м нто . Оп р ция о л ния но о о эл м нт иноми льную ку- чу у личи т число иноми льных р ь (функцию F ) н 1. О н оп р ция о л ния мо т при сти к посл о т льности оп р ций слияния иноми льных р ь . При к ой оп р ции слияния колич ст о р ь (функция F ) ум ньш тся н 1. О - щ колич ст о ум ньш ний функции F н пр осхо ит о щ о колич ст у лич ний функции F ( F о р нич н сни у н ч ни-м 0). Т к к к о щ колич ст о у лич ний функции F ð íî n , то и о щ колич ст о ум ньш ний функции F í ïð îñõî èò n .
Сл о т льно, тру о мкость л оритм со ния иноми льной кучи сть O(n) .
Ни пок н проц сс со ния кучи ля посл о т льно поступ ющих эл м нто от 1 о 7.
1 |
k |
|
1 |
k |
|
|
|
|
|
|
|
|
|
Q |
|
|
|
|
|
|
|
1 |
|
|
|
Q |
2 |
k |
|
|
||
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 X |
3 |
k |
|
|
|
|
|
|
||
L |
k |
|
|
|
|
|
|
|||
|
X |
|
|
|
|
|
|
|
|
|
L |
|
|
Z |
|
|
|
|
|
|
|
|
|
Z |
|
|
|
|
|
|
|
|
2 k |
4 k |
|
|
|
|
|||||
|
4 |
|
|
|
|
|
|
|
|
|
5 |
k |
|
1 |
XX |
k |
|
|
|||
C |
|
|
L k |
3 |
|
6 |
||||
6C |
|
|
|
L |
|
|
|
Z |
|
|
k |
|
|
k |
Z 4 |
k |
|||||
|
2 |
|
||||||||
7 |
k |
|
L k |
|
L |
k 3 |
k |
|||
|
|
5 |
|
1 X |
|
|
||||
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
L |
k L2 |
kTT4 |
|
||||
|
|
|
6 |
k |
3 |
k1 |
k |
|
|
|
Z |
|
|
|
|
|
Z 2 |
k |
|
|
3 |
|
|
|
|
k D |
k |
3 k |
|
5 |
1 |
XX |
|
|
|
D |
k |
c |
k |
|
2 |
c 4 |
||
|
5 |
|
|
|
7
111
У л ни миним льно о эл м нт
Бу м пр пол ть, что иноми льн я куч р ли о н и структуры, опис нной р н ля оп р ции слияния ух иноми-льных куч.
Для ыполн ния проц уры у л ния миним льно о эл м нт н о хо имо сн ч л н йти иноми льно р о с миним льным корн ым н ч ни м.
Ïð ïîëî èì, ÷òî ýòî ð î Bk . Тру о мкость это о ш
л оритм сть O(log n) .
Ó ëÿ ì ð î Bk è êó÷è H , формируя но ую иноми льную кучу H0 (êó÷ H ð Bk ).
Тру о мкость это о ш л оритм сть O(1) .
Ó ëÿ ì è ð Bk êîð íü, ð óëüò ò ÷ î èí ðíî - ð î Bk ð ñï òñÿ í ð üÿ B0; B1; Bk 1 , и которых мы о р у м но ую иноми льную кучу H00 .
Тру о мкость это о ш л оритм сть O(1) , посколькуля к о о у л хр ним ссылки н п р о о сын , л о о и пр о о р т .
Выполня м оп р цию слияния куч H0 è H00 . Тру о мкость слияния ух куч сть O(log n) .
Сл о т льно, тру о мкость проц уры у л ния миним льно о эл м нт сть O(log n) .
Ни пок н куч , получ нн я и кучи H3 посл у л ния и н миним льно о эл м нт с ключом 12.
112
H3
|
13 |
m |
23 |
mP24 |
|
|
12 |
m |
|
|
|
|
|
14 |
m 16 |
|
|
|
|
||||||
|
|
P |
|
|
m |
P |
|
m |
|
P |
|
|
m |
|
|||||||||||
|
|
|
|
A |
|
|
|
S |
|
|
S |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
P24 |
|
|
|
|
|
P |
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
A |
m |
|
S |
|
S |
65 |
|
m |
S |
|
T |
|
|
m |
||
|
|
|
|
|
51 |
m 65 |
|
21 |
m |
|
26 |
m18 |
|||||||||||||
|
|
|
|
|
|
|
A |
|
|
|
S |
|
|
|
|
|
T |
|
|
||||||
13 |
m |
23 PP |
|
m |
|
|
21 m24 |
m |
|
|
14 PmP |
|
|
m |
|||||||||||
|
|
AAm |
24 |
|
|
|
|
|
|
LL |
|
|
|
|
AA |
|
|
|
16 |
|
|||||
|
|
|
|
|
LL |
m |
|
|
|
|
65 |
m |
|
|
|
|
LL |
|
|||||||
|
|
|
51 |
m |
65 |
|
|
|
|
|
|
26 |
m |
18 m |
|||||||||||
|
|
|
H0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
H00 |
|
|
|
|
|
|
|
|
P |
|
|
13 |
|
mP |
|
|
|
14 |
mP |
|
|
|
|||
23 |
P |
|
m |
|
P |
|
|
m |
P |
|
|
m |
|
||||
J m24 |
A |
|
24 |
T |
|
16 |
|
||||||||||
|
J |
L |
|
|
|
A |
|
A |
|
|
|
T |
|
L |
|
|
|
|
|
m |
L |
|
|
|
|
m |
A |
|
|
|
|
|
L |
|
|
|
51 |
65 |
m |
|
21 |
65 |
m |
26 |
m18 |
m |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ан ли осно ных проц ур р оты с иноми льными куч ми при-о ит к сл ующ й структур нных ля пр ст л ния и- номи льной кучи.
type
tree_ptr =" tree_node; tree_node =record
element:integer; rank :integer;
f_child : tree_ptr; l_sib : tree_ptr; r_sib : tree_ptr; end;
PRIORYTY_QUEUE=tree_ptr;
113
![](/html/1144/349/html_rS5Bm8Zart.Ng0Z/htmlconvd-iF9jw3114x1.jpg)
Т ким о р ом, к ый эл м нт, опис нной ыш мультисписко ой структуры, со р ит сл ующую информ цию: ключ он ч ни ршины, колич ст о сыно й (которо н ы тся р н-ом ршины), ук т ль н п р о о сын , ук т ль н л о о и пр о о р т . Сыно ья к ой ршины пр ст л ны иухс я но о списк и упоря оч ны по р м р м их по р ь ; ук т ль л о о р т п р о о сын сть посл ний сын.
Н при нном ни рисунк иноми льн я куч рху и о-р н и л с , ни у мультисписко я структур .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
H3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
n n |
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
13 |
23 |
|
Q |
|
|
|
|
12 |
Q |
|
|
|
|
|
|
|
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
E |
|
Q |
|
|
|
|
|
|
|
|
|
E |
|
Q |
|
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
E |
|
24 |
|
|
|
|
|
|
|
|
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
51 |
|
|
|
L n |
21 n en26 |
|
n en |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
n L |
|
|
n |
|
|
|
|
|
|
|
e |
n |
|
|
|
e |
n |
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
65 |
|
|
|
|
|
|
|
|
65 |
|
|
|
|
|
18 |
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
- |
|
|
|
|
|
- |
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
13 |
|
n |
|
|
|
|
|
23 |
|
n |
|
|
|
|
12 |
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
0 |
A |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
51 |
n24 n |
|
|
|
|
21 |
|
|
24 |
|
n14 n |
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
0 |
|
A |
|
|
1 |
|
|
|
|
|
|
0 |
|
|
|
|
|
J |
1 |
|
|
|
2 |
|
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
J |
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
?= |
|
|
|
|
NB |
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
65 |
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
|
n |
|
|
|
|
26 |
|
n |
|
16 |
|
1n |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
0 @ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
@ |
|
|
0 |
@ |
|
|
|
|
? |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
+ |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
n |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 @ |
|
|
При м про р ммную р ли цию проц уры слияния ух и- номи льных куч.
114
![](/html/1144/349/html_rS5Bm8Zart.Ng0Z/htmlconvd-iF9jw3115x1.jpg)
function merge_tree(T1; T2 : P RIORIT Y _QUEUE): P RIORIT Y _QUEUE;
begin |
|
|
if T1 |
" :element > T2 " :element then swap(T1; T2); |
|
if T1 |
" :rank = 0 then T1 " :f_child := T2; |
|
else |
|
|
{ T2 |
" :l_sib := T1 " :f_child " :l_sib; |
|
T2 |
" |
:l_sib " :r_sib := T2; |
T1 |
" :f_child " :l_sib := T2; |
|
} |
|
|
T1 " :rank := T1 " :rank + 1; merge_tree := T1;
end;
function merge(H1; H2 : P RIORIT Y _QUEUE) : P RIORIT Y _QUEUE;
var H2 : P RIORIT Y _QUEUE;
T1; T2; T3 : P RIORIT Y _QUEUE; begin
if H1 = nil then merge := H2 else
if H2 = nil then merge := H1 else
if H1 " :rank < H2 " :rank then
{ extract(T1; H1); H3 := merge(H1; H2); T1 " :l_sib := H3 " :l_sib;
H3 " :l_sib: " :r_sib := nil;
T}1 " :r_sib := H3; H3 " :l_sib := T1; merge := T1;
else
if H2 " :rank < H1 " :rank then merge := merge(H2; H1)4
else
{ extract(T1; H1); extract(T2; H2);
H3 := merge(H1; H2); T3 := merge_tree(T1; T2); merge := merge(H3; T3);
}
end;
115
При нн я ыш функция слияния ух куч merge(H1; H2 : P RIORIT Y _QUEUE)
исполь у т функцию слияния ух иноми льных р ь merge_tree(T1; T2 : P RIORIT Y _QUEUE)
и пр пол т, что сущ ст у т функция extract(T; H) , котор я у ля т р о T и иноми льной кучи H .
Óïð í íè .
Выполнить про р ммную р ли цию проц уры у л ния миним льно о эл м нт и иноми льной кучи.
4.5.4Êó÷è Ôè îí ÷÷è
Н ни куч Фи он ччи о усло л но т м, что ля ок т льст оц нок тру о¼мкости оп р ций исполь уются числ Фи он ччи. Н -
помним, что числ Фи он ччи F(i) |
опр ляются сл ующим о - |
|||
ð îì: |
|
|
|
|
|
F (1) = 1; F(2) = 1; |
|
|
|
F (k) = F(k 1) + F (k 2); |
k 3: |
|||
|
Ñ îéñò ÷èñ ë Ôè îí ÷÷è. |
|||
Ñ îéñò î 4.5.1. |
1. ëÿ k 3; |
F (k) |
2 (k 2 1) ; |
|
|
|
|
|
|
2. F (k) = 1 + F(1) + F (2) + : : : + F (k 2): |
|
|||
Äîê ò ëüñò î. |
|
|
|
|
Ïî îïð ë íèþ ÷èñ ë Ôè îí ÷÷è èì ì: |
|
|||
F (k) = F (k |
1) + F (k 2) è F (k 1) F (k 2) . Ñëî è ýòè |
|||
соотнош ния, получим: |
|
|
|
|
|
F (k) 2F (k 2): |
|
|
|
Åñëè k н ч¼тно, то исполь уя н р нст о |
F(k) 2F (k 2) |
|||
получим: |
|
|
(k 2 1) |
F (1) = 2 (k 2 1) : |
F (k) 2F (k 2) 22F (k 4) : : : 2 |
||||
|
|
|
|
|
Åñëè k ч¼тно, то ок м по ин укции.
116
Пусть k = 4 . Про рим истинность н р нст
F (4) 23=2:
Ä éñò èò ëüíî,
F (4) = F(3) + F (2) = F (2) + F (1) + F(2) = 2F (2) + F (1) = 3:
Пр поло им, что с ойст о 4.5.1. истинно ля с х ч¼тных чи- с л, м ньших k . То , с уч том ин укции и с ойст ля н ч тных k , èì ì
F (k) F (k 1) + F(k 2) 2 |
(k 2) |
+ 2 |
(k 3) |
: |
||
2 |
2 |
|||||
Поэтому, |
2 (k 2 3) |
[21=2 + 1] |
2 (k 2 |
1) : |
|
|
F (k) |
|
|
||||
|
|
|
|
|
|
|
Ñë î ò ëüíî, F (k) 2 |
(k 2 1) |
ëÿ ñ õ k |
3 . Ï ð ÿ ÷ ñòü ñ îé- |
|||
|
|
|
|
|
|
|
ñò 4.5.1. îê í .
Для ок т льст торой ч сти с ойст 4.5.1. опр лим ря
÷èñ ë G0( ) сл ующим о р ом: |
|
G0 |
(1) = 1; |
G0 |
(2) = 1; |
G0(k) = 1 + G0(1) + G0 |
(2) + : : : + G0(k 2); k 3: |
Òî G0(k 1) = 1 + G0(1) + G0(2) + : : :+ G0(k 3) è G0(k) G0(k |
|
1) = G0(k 2): |
|
Ñë î ò ëüíî, G0(k) = G0(k 1) + G0(k 2) è ðÿ ÷èñ ë G0(k) |
|
ñîîò òñò ó ò F (k) ëÿ ñ õ k , F(k) ÷èñë Ôè îí ÷÷è. |
Âòîð ÿ ÷ ñòü ñ îéñò 4.5.1. îê í .
Дру ой спосо ок т льст торой ч сти с ойст 4.5.1..
По ин укции ля k = 3 èì ì F (3) = 1 + F (1) , ñë î ò ëüíî ñ îéñò î ðíî. Ïð ïîëî èì, ÷òî
F (k) = F (1) + F (2) + : : : + F(k 2);
òî
F (k + 1) = F(k) + F (k 1) = F (1) + F (2) + : : : + F (k 1):
Âòîð ÿ ÷ ñòü c îéñò 4.5.1. îê í .
2
117
Ñ îéñò î 4.5.2. Åñëè |
посл о т льность чис л G( ) ó î ë - |
т оря т соотнош ниям G(1) = 1 , G(2) = 1 è G(k) 1 + G(1) + |
|
+ G(2) + : : : + G(k 2) |
ëÿ ñ õ k 3 , òî G(k) F (k) . |
Äîê ò ëüñò î.
Про м ок т льст о по ин укции. Если k = 3 , òî
G(3) 1 + G(1) = 2 = F (3):
Ïð ïîëî èì, ÷òî G(k) F (k) ëÿ ñ õ í ÷ íèé k î q 1 . Òî G(q) 1 + G(1) + G(2) + : : : + G(q 2) 1 + F (1) + F(2) +
+ : : : + F (q 2) = F (q): Ñë î ò ëüíî,
2
Õð í íè ñ ì éñò êîðí ûõ ð ü
Р ссмотрим с м йст о корн ых р ь и ля н о опр лим
ïðîö óðû link(i; j) è cut(i) . Ïðîö óð link(i; j) состоит слиянии ух р ь о ин ко о о р н , корнями которых я ляются у лы i è j . Ïðîö óð cut(i) состоит том, что о р у тся но-о р о, корн м которо о я ля тся у л i , i п р ст т ыть сыном у л j = pred[i] .
Для лю о о у л н о хо имо им ть информ цию о пр к х, потомк х и р н у ло соот тст ующ о р (по р н ом у л поним тся колич ст о о сыно й):
1.pred[i] îò ö ó ë i í îð êîðí ûõ ð ü . Ó ë i ,
í èì þùèé îòö ÿ ëÿ òñÿ êîðí ûì ó ëîì. Â ýòîì ñëó÷ pred[i] = 0 .
2.succ[i] ìíî ñò î ñûíî é ó ë i . то мно ст о мо но хр нить и ун пр л нно о списк .
3.rank[i] число сыно й у л i ( rank[i] = jsucc[i]j )
4.minkey у л с миним льным н ч ни м ключ н ор корн ых р ь .
Н рис.4.5.15. при ¼н прим р с м йст корн ых р ь . Ни при о ится соот тст ующ я й структур нных.
118
|
|
|
|
|
|
|
|
|
|
7 |
|
6 m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
6oS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S |
|
||
|
m |
|
|
m |
|
m |
m |
7 m |
m |
|||||
4 |
|
2 |
1 |
8 |
|
10 |
||||||||
|
6 |
|
|
BM |
|
|
6 |
|
|
|
|
|||
|
|
|
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
|
|
5 m |
m |
m |
|
|
|
|
m |
|
|
|
|
|||
3 |
9 |
|
11 |
|
|
|
|
|
Ðèñ. 4.5.15.: Í îð êîðí ûõ ð ü .
|
i |
1 |
2 |
|
3 |
|
4 |
5 |
|
6 |
7 |
8 |
9 |
10 |
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pred[i] |
0 |
0 |
|
2 |
|
0 |
4 |
|
0 |
6 |
6 |
2 |
6 |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
succ[i] |
; |
{3,9} |
|
; |
|
{5} |
; |
{8,7,10} |
; |
{11} |
; |
; |
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rank[i] |
0 |
2 |
|
0 |
|
1 |
0 |
|
3 |
0 |
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Проиллюстриру м р оту проц ур |
link |
è cut í ïðèì ð (ñì. |
||||||||||||||
ðèñ.4.5.16.), ïðè ýòîì |
key[i] = i . Ç ì òèì, ÷òî ïðîö óð link(i; j) |
|||||||||||||||
ó ëè÷è ò ð í ó ë i |
èëè ó ë j í 1. Ê ÿ è ýòèõ ïðîö óð |
и м ня т информ цию: отц ( pred ), í ñë íèêî ( succ ) è ð í ( rank ) к к м ксимум ля ух у ло .
Îïð ë íè êó÷è Ôè îí ÷÷è
Куч Фи он ччи это с м йст о корн ых р ь , ля которых ыполняются сл ующи с ойст (ин ри нты):
С ойст о 4.5.3. (Ин ри нт 1). К ый у л куч Фи он ч- чи у о л т оря т осно ному с ойст у кучи: приорит т отц н ни приорит т к о о и о сыно й.
С ойст о 4.5.4. (Ин ри нт 2). К ый н корн ой у л мо-т пот рять н ол о но о сын при ыполн нии проц уры cut .
119
|
2 MBl |
|
|
6KA l |
|
|
|
2 |
l |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
B |
|
|
|
|
|
A |
|
|
|
|
|
oS |
|
|
|
||
|
|
|
|
|
|
|
|
6 |
|
|
|
|||||||
|
B |
|
|
|
|
|
A |
|
|
|
|
|
|
S |
|
|
|
|
|
|
l |
|
|
|
|
|
lS6 YHl |
|
|
||||||||
5 |
l 3 |
l |
8 |
12 |
l |
5 l 3 |
|
|
||||||||||
|
|
|
|
7 |
MB |
|
|
|
|
|
|
|
|
|
7 H |
|
||
|
|
|
|
B |
|
|
|
|
|
|
|
|
l |
|||||
|
|
|
|
l |
B |
l |
|
|
|
|
> |
|
|
12 |
||||
|
|
|
14 |
|
|
11 |
|
|
|
|
|
|
|
|
8 l |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
YH |
H |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
l |
||||
a) |
|
|
|
|
|
|
|
|
|
|
b) |
l |
|
11 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
2 |
l |
|
|
|
|
|
|
8 |
l |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|||
|
|
|
oS |
|
|
|
|
o |
|
|
|
|
|
|
|
|||
|
6S |
|
|
|
|
|
|
S |
|
|
|
|
|
|
|
|||
|
|
|
S |
|
|
14 |
l |
11 |
l |
|
|
|
|
|
|
|||
|
l 3 |
YHl |
|
|
|
c) |
|
|
|
|
||||||||
5 |
l6 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
H |
|
l |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
12 |
|
|
|
|
|
|
|
|
|
Рис. 4.5.16.: Иллюстр ция проц ур link(i,j) и cut(i): a) н ор кор- н ых р ь ; b) р ульт т link(2,6); c) р ульт т cut(8);
С ойст о 4.5.5. (Ин ри нт 3). В с м йст корн ых р ь н т ух р ь с корнями о ин ко о о р н .
Пок м, что осно ны оп р ции с куч й Фи он ччи мо-ут ыть р ли о ны и посл о т льности ух проц ур: link(i; j) è cut(i) .
Ïðîö óð link(i; j) прим ня тся к ум р личным корн ым у л м i è j ð íî î ð í .
link(i; j)
Åñëè key(j) key(i) , òî î èì ó ó (i; j) ( êó÷ Ôè îí ÷- ÷è ó ë j ст но ится отцом у л i ). Åñëè key[j] > key[i] , òîî èì ó ó (j; i) (ó ë i ст но ится отцом у л j ).
cut(i)
120