Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Полезная методичка

.pdf
Скачиваний:
82
Добавлен:
01.04.2014
Размер:
1.09 Mб
Скачать

ш (о р о ни кучи и о но о инст нно о эл м нт и слияни с у сущ ст ующим р ом ысоты 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

Т ким о р ом, к ый эл м нт, опис нной ыш мультисписко ой структуры, со р ит сл ующую информ цию: ключ он ч ни ршины, колич ст о сыно й (которо н ы тся р н-ом ршины), ук т ль н п р о о сын , ук т ль н л о о и пр о о р т . Сыно ья к ой ршины пр ст л ны иухс я но о списк и упоря оч ны по р м р м их по р ь ; ук т ль л о о р т п р о о сын сть посл ний сын.

Н при нном ни рисунк иноми льн я куч рху и о-р н и л с , ни у мультисписко я структур .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n n

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

23

 

Q

 

 

 

 

12

Q

 

 

 

 

 

 

 

 

14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E

 

Q

 

 

 

 

 

 

 

 

 

E

 

Q

 

 

 

 

 

 

 

 

C

QQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

G(q) F(q):

Ñ îéñò î 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

Соседние файлы в предмете Структуры и алгоритмы обработки данных