² - e-maxx.ru · 4 17 ¤»¥ «£ ®°¨²¬» 326 17.1. ¤ · ® ¢»¡ ®° ¥ § ¿¢®ª.. ......
Transcript of ² - e-maxx.ru · 4 17 ¤»¥ «£ ®°¨²¬» 326 17.1. ¤ · ® ¢»¡ ®° ¥ § ¿¢®ª.. ......
1 7
1.1. . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2. . . . . . . . . . . . . . . . . . . . . 11
1.3. . . . . . . . . . . . . . . . . . 15
1.3.1. . . . . . . . . . 16
1.3.2. 17
I 24
25
2 26
2.1. . . . . . . . . . . . . . 26
2.2. . . . . . . . . . 30
3 39
3.1. . . . . . . . . . . . . . . . . . . . 39
3.2. . . . . . . . . . . . . . . . . . . . . . . . . 43
4 49
4.1. . . . . . . . . . . . . . . . . . . . . 50
4.2. . . . . . . . . . . . . . . . . . 53
4.3. . . . . . . . . . . . . . . . . . . . . . . . 56
? 4.4 4.1 . . . . . . . . . . . . . . . 59
4.4.1. . . . . . . . . . 59
4.4.2. . . . . . . . 63
5 71
5.1. . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2. . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3. . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2
5.5.1. . . . . . . . . . 87
5.5.2. . . 89
5.5.3. . . . . 91
6 96
6.1. . . . . . . . . . . . . . . . . . . . . 96
6.2. . . . . . . . . . . . . . . . . . . . . . . . . 102
6.2.1. . . . 103
6.3. . . . . . . . . . . . . 108
6.4. . . . . 113
6.5. . . . . . . . . . 118
6.6. . . . . . . . . . . . . . . . . . . 123
6.6.1. . . . . . . . . . . . . . 123
6.6.2. . . . . . . . . . . . . . . . . . . . 125
6.6.3. . . . . . . . . 126
II 132
133
7 136
7.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.2. . . . . . . . . . . 138
7.3. . . . . . . . . . . . . . . . . . . . . . 140
7.4. . . . . . . . . 143
7.5. . . . . . . . . . . . . . . . . . 143
8 148
8.1. . . . . . . . . . . . . . 148
8.2. . . . . . . . . . . . . . . . 151
8.3. . . . 155
8.4. . . . . . . . . . . . . . . . 157
8.4.1. . . . . . . . . . . . . 157
8.4.2. . . . . . . . . 158
9 166
9.1. . . . . . . . . . . . . . 166
9.2. . . . . . . . . . . . . . . . . . . 169
9.3. . . . . . . . . . . . . . . . . . . . 171
9.4. . . . . . . . . . . . . . . . 174
10 180
10.1. . . . . . . . . . . . . . . . . . . 181
10.2. . . . . . . . . . . 182
10.3. . . . . . . 185
3
III 192
193
11 197
11.1. . . . . . . . . . . . . . . . . . . . . . . 197
11.2. . . . . . . . . . . . . . . . . . . . . . 201
11.3. 206
11.4. . . . . . . . . . . . 210
12 - 217
12.1. . . . . . . . . . . . . . . . . . . . . . 217
12.2. - . . . . . . . . . . . . . . . . . . . . . . . . 219
12.3. - . . . . . . . . . . . . . . . . . . . . . . . 225
12.3.1. . . . . . . . . . . . . . . . . 226
12.3.2. . . . . . . . . . . . . . . . . . . . . . 227
12.3.3. . . . . . . . . . . . 228
12.4. . . . . . . . . . . . . . . . . . . . 231
13 242
13.1. ? . . . . . . . . . . 243
13.2. . . . . . . . . . . . . . . . . . 245
13.3. . . . . . . . . . . . . 248
? 13.4 . . . . . . . . . . 252
14 - 262
14.1. - . . . . . . . . . . . 262
14.2. . . . . . . . . . . . . . . . . . . . . . . . . . . 264
14.3. . . . . . . . . . . . . . . . . . . . 267
14.4. . . . . . . . . . . . . . . . . . . . . . . . . . . 271
15 280
15.1. . . . . . . . . . 280
15.2. 285
15.3. . . . . . . . . . . . . . . . . . . . 288
IV 296
297
16 299
16.1. . . . . . . . . . . . 300
16.2. . 307
16.3. . . . . . . 312
16.4. . . . . . 317
4
17 326
17.1. . . . . . . . . . . . . . . . . . . 326
17.2. ? . . . . . . . . . . 330
17.3. . . . . . . . . . . . . . . . . . . . . . . 333
? 17.4 . . . . . . 341
17.4.1. . . . . . . . . . . . . . . . . . . . . . 341
17.4.2. 343
? 17.5 . . . . . . . . . . . . . . . . . . . 346
18 352
18.1. . . . . . . . . . . . . . . . . . . . . 353
18.2. . . . . . . . . . . . . . . . . . . . . 356
18.3. . . . . . . . . . . . . . . . . . . . . 359
18.4. . . . . . . . . . . . . . . . . . . 362
18.4.1. . . . . . . . . . . . . . . . 362
18.4.2. . . . . . . 365
V 372
373
19 - 376
19.1. - . . . . . . . . . . . . . . . . . . 379
19.2. - . . . . . . . . . . . 381
19.3. - . . . . . . . . . . . . . 388
20 394
20.1. . . . . . 395
20.1.1. . . . . . . . . . . . . . . 395
20.1.2. . . . . . . . . . . . . . . . . 397
20.2. . . . . . . . . . . 399
20.2.1. . . . . . . . . . . . . . . 400
21 413
21.1. . . . . . . . . . . . . . 414
21.2. , . . . 416
21.3. . . . . . . . . 425
21.4. . . . . . . . . . . . . . 429
22 434
22.1. . . . . 434
22.2. . . . . . . . . . . . . . 437
22.2.1. . . . . . . . . . . . . . . . . . . . . 441
23 452
23.1. . . . . . . . . . . . . 453
5
23.1.1. . . . . . . . . . . . . . . 453
23.1.2. . . . . . . . . . . . . . . . . . . 456
23.1.3. . . . . . . . . . . . . . . . . . . 464
23.1.4. . . . . . . . . . . . 471
23.1.5. . . . . . . . . . . . 473
24 481
24.1. . . . . . . . . . . . 482
24.2. . . . . . . . . . . . . . 486
25 493
25.1. . . . . . . . . . . . . . 497
25.2. - . . . . . . . . . . . . . . . 507
25.3.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
25.4. . . . . 512
26 522
26.1. - . . . . . . . . . . . . . . . 529
27 546
27.1. . . . . . . . . . . . . . . . . . . . . . . 547
27.2. { . . . . . . . . . . . . . . . . 552
27.3. . . 562
27.4. . . . . . . . . . 565
27.5. --- . . . . . . . . . . . . . . 574
28 586
28.1. . . . . . . . . . . . . . . . . . . . . 587
28.2. . . . . . . . . . . . . . . . . . 590
28.3. . . . . . . . . . . . . . . . 592
28.4. . . . . . . . . . . . . . . . . . . . . . . 594
28.5. . . . . . . . . . . . . . . . . . . . . 596
29 601
29.1. . . . . . . . . . 602
29.1.1. . . . . . . . . . . . 602
29.1.2. . . . . . 603
29.1.3. . . . . . . . . . . . . . . . . . . . . . 603
29.1.4. . . . . . . . . . . . . . . . . . . . 604
29.1.5. . . . . . . . . . . . . . . . . . . . 605
29.1.6. . . . . . . . . . . . . . . . . . . . . 605
29.2. C . . . . . . . . . . . . . . . . . . . 605
29.2.1. . . . . . . . . . . . . . . . 606
29.2.2. . . . . 607
29.2.3. -
. . . . . . . . . . . . 608
6
29.2.4. :
. . . . . . . . . . . . . . . . . . . . . 609
29.2.5. . . . . . . 610
29.3. . . . . . . . . . . . . . . . . . . 612
29.3.1. . . . . . . . . . . . . . 612
29.3.2. . . . . . . . . . . . . . . 614
29.3.3. . . . . . 614
29.3.4. . . . . . . . . . . . . . . 615
29.3.5. . . . . . . . . . . . . . . . . . . . . 616
29.4. . . . . . . . . . . . . . . . . . . 617
29.4.1. . . . . . . . . 617
29.4.2. . . . . . . . . . . . . . . 618
29.4.3. . . 618
29.4.4. . . . . . . . . . . . . 619
29.4.5. . . . . . . . . . . . . . . . . 619
29.4.6. . . . . . . . . . . . . . . . 620
29.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
29.6. . . . . . . . . . . . . . . . . . . . . . . . 623
30 625
30.0.1. -
(PRAM) . . . . . . . . . . . . . . . . . . . . 625
30.0.2. -
. . . . . . . . . . . . . . . . . . . . . . . . . 626
30.0.3. . . . . . . . . . . . . . . . . . . 627
30.0.4. . . . . . . . . . . . . . . . . . . . . . 627
30.1. . . . . . . . . . . . . . . . . . 628
30.1.1. . . . . . . . . . . . . . . . . . . 628
30.1.2. . . . . . . . . . . . . . . . . . . . 630
30.1.3. . . . . . . . . . . . . . . . . . . . . . . . 630
30.1.4. . . 631
30.1.5. . . . . . . . . . . . . . . 633
30.2. CRCW- EREW- . . . . . . . . . . . . . . . 636
30.2.1. . . . . . . . . . . 636
30.2.2. . . . . . . . . . . . 637
30.2.3. CRCW-
EREW- . . . . . . . . . . . . . . . . . . 639
30.3. . . . . 642
30.3.1. . . . . . . . . . . . . . . . . . . . . 645
30.4. . . 645
30.4.1. 646
30.4.2. . . . . . . . . . . . 647
30.4.3. . . . . . . . . . . . . . . . . . . . . . . . 647
30.4.4. . . . . . . . . . . . . . . . . . . . . 649
30.5. ( -
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
7
30.5.1. -
. . . . . . . . . . . . . . . . . . . . . . . 650
30.5.2. 6- . . . . . . . . . . . . . 651
30.5.3. -
6- . . . . . . . . . . . . . . 653
30.5.4. . . . . . . . . . . . . . . . . . . . . 654
30.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
30.7. . . . . . . . . . . . . . . . . . . . . . . . 657
31 659
31.1. . . . . . . . . . . . . . . . . . 659
31.2. . . . . . . . 668
31.3. . . . . . . . . . . . . . . . . . . . . 675
31.4. -
. . . . . . . . . . . 679
33 p- p 712
33.1. . . . . . . . . . . 713
33.2. . . . . . . . . . . . . . . 718
33.3. . . . . . . . . . . . . . . . . . 722
33.4. . . . . . . 726
33.5. . . . . . . . . . . . . . 729
33.6. . . . . . . . . . . . . . . . . . . . . . 732
33.7. RSA . . . . . . . 735
33.8. . . . . . . . . . . . . . . . 741
34 757
34.0.1. . . . . . . . . . . 758
34.1. . . . . . . . . . . . . . . . . . . 759
34.2. | . . . . . . . . . . . . . . . 761
34.2.1. . . . . . . . . . . . . . . . . . . . . 764
34.3. . . . 765
34.3.1. . . . . . . . . . . . . . . . 765
34.3.2. . . . . . . . . . 766
34.3.3. . . . . . . . . . 770
34.4. | | . . . . . . . . 771
34.4.1. -, 771
34.4.2. . . . . . . . . . . . . . . . . . . . 773
34.4.3. - . . 774
34.4.4. KMP . . . . . . . . . . . . 776
34.5. | . . . . . . . . . . . . . . . . 777
34.5.1. - . . . . . . . . . . . . . 778
34.5.2. . . . . . . . . 780
34.5.3. . . . . . . . . . . . . . . . . . . . . 784
34.6. . . . . . . . . . . . . . . . . . . . . . . . . . 785
8
35 787
35.1. . . . . . . . . . . . . . . . . . . . . 788
35.2. ? . . . . . . . . . . . 793
35.3. . . . . . . . . . . . . . 798
35.4. . . . . . . . . . . . 804
35.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
36 NP- 811
36.1. . . . . . . . . . . . . . . . . . . 812
36.2. NP . . . . . 819
36.3. NP- . . . . . . . . . . . . . . . . 824
36.4. NP- . . . . . . . . . . . . . . . . . . . . . 837
36.4.1. . . . . . . . . . . . . . . . . . . . 837
36.4.2. . . . . . . . . . 839
36.4.3. . . . . . . . . . 842
36.4.4. . . . . . . . . . . . . . . 846
37 850
37.1. . . . . . . . . . . . . . 852
37.2. . . . . . . . . . . . . . . . . . . 854
37.2.1. ( -
) . . . . . . . . . . . . . . . . . . . . . 854
37.2.2. . . . . . . . . . . 856
37.3. . . . . . . . . . . . . . . 863
-
. -
; ,
.
; -
.
260 , .
-
.
, -
| .
-
.
:
-
|
-
. ,
, .
.
;
,
. -
,
.
( 900): -
( 120). ,
(
| , -
10
). ;
-
, .
;
. -
-
; -
.
:
, -
.
, , -
.
, -
, .
, , ,
. ,
, ,
.
, ? ,
, -, ;
(, ) (- -
;
).
:
-
. ,
.
-
, -
. -
, -
.
-
, . ,
- (-
. .), .
11
.
,
, .
(, -
, ). :
Introduction to Algorithms
MIT Labratory for Computer Science
545 Technology Square
Cambridge, Massachusetts 02139
-
; ,
[email protected] , Subject:
help . ,
.
[ , -
( 1997), , -
, , , -
( , . ).
, , -
: , !
(, 121002, ., 11,
, ).]
. -
.
(Massachusetts Institute of Technology, Laboratory for
Computer Science) -
. -
. :
Baruch Awerbuch, Sha Goldwasser, Leo Guibas, Tom Leighton, Al-
bert Meyer, David Shmoys, Eva Tardos. , -
( : Microvax, Apple Macintosh, Sun Sparc-
station) William Ang, Sally Bemus, Ray Hirschfeld
Mark Reinhold; TEX, -
.
Thinking Machines
12
.
,
. -
: Richard Beigel (Yale), Andrew Goldberg (Stanford), Joan
Lucas (Rutgers), Mark Overmars (Utrecht), Alan Sherman (Tufts,
Maryland), Diane Souvaine (Rutgers).
-
, . -
: Alan Baratz, Bonnie Berger, Aditi Dhagat, Burt Kaliski,
Arthur Lent, Andrew Moulton, Marios Papaefthymiou, Cindy Phillips,
Mark Reinhold, Phil Rogaway, Flavio Rose, Arie Rudich, Alan Sher-
man, Cli Stein, Susmita Sur, Gregory Troxel, Margaret Tuttle.
-
: (Denise Sergent),
(Maria Sensale), (Al-
bert Meyer), (Shlo-
mo Kipnis, Bill Niehaus, David Wilson), (Marios
Papaefthymiou, Gregory Troxel), (Inna Radzi-
hovsky, Denise Sergent, Gayle Sherman, Be Hubbard).
, Bobby
Blumofe, Bonnie Eisenberg, Raymond Johnson, John Keen, Richard
Lethin, Mark Lillibridge, John Pesaris, Steve Ponzio, Margaret Tuttle.
, -
; Bill Aiello, Alok Aggrawal, Eric Bach,
Vasek Chvatal, Richard Cole, Johan Hastad, Alex Ishii, David Johnson,
Joe Kilian, Dina Kravets, Bruce Maggs, Jim Orlin, James Park, Thane
Plambeck, Herschel Safer, Je Shallit, Cli Stein, Gil Strang, Bob Tar-
jan, Paul Wang.
, Andrew Goldberg, Danny Sleator, Umesh Vazirani.
LATEX
( TEX). -
Apple Macintosh Mac Draw II; -
(Joanna Terry, Claris Corporation; Michael Mahoney, Advanced Com-
puter Graphics).
Windex, . -
BibTEX. -
-
Autologic;
(Ralph Youngen,
). : Rebecca Daw, Amy Henderson (-
LATEX), Jeannet Leendertse ().
-
MIT Press (Frank Sallow, Terry Ehling, Larry Cohen,
13
Lorrie Lejeune) McGraw-Hill (David Shapiro)
,
(Larry Cohen).
, (Nicole Cormen, Lina Lue
Leicerson, Gail Rivest) (Ricky, William Debby Leicerson;
Alex Christopher Rivest)
(Alex Rivest
( 6.6.1). ,
; .
,
1990
(Thomas H. Cormen) (Charles E. Leiserson)
(Ronald L. Rivest)
:
MIT
, ( -
).
-
( .. ).
-
, -
,
:
K. , . , . , . , .
. , . , . , . , . -
, . , . , . , . , .
()
. , . , . , . , . -
, . , . . , A. (-
)
. ()
.. ()
1
,
, -
|
.
,
, -
, -
, ,
.
1.1.
(algorithm) | -
, (input),
, -
(output).
(computational problems). ,
, -
, , ,
.
(sorting prob-
lem);
-
. :
: n (a1; a2; : : : ; an).
: (a01; a02; : : : ; a
0n) -
, a01 6 a02 6 : : : 6 a
0n.
, h31; 41; 59; 26; 41; 58i, - h26; 31; 41; 41; 58; 59i.
(instance) .
15
-
. ;
-
, , ,
( , ,
).
(correct), -
( )
, .
, (solves) -
. (
) .
(, |
.
33 .
, .)
,
|
, .
(pseu-
docode), -
(, , ). ,
, -
. , -
( , ),
, .
(insertion sort) -
. -
:
,
, (. . 1.1)
Insertion-Sort, -
A[1 : : n] (
n, ). -
A length[A].
(in place), (
).
Insertion-Sort A .
16 1
. 1.1
Insertion-Sort(A)
1 for j 2 to length[A]2 do key A[j]3 . A[j] A[1 : : j 1].4 i j 15 while i > 0 and A[i] > key
6 do A[i+ 1] A[i]7 i i 18 A[i+ 1] key
. 1.2 Insertion-Sort A = h5; 2; 4; 6; 1; 3i. - j .
. 1.2 A = h5; 2; 4; 6; 1; 3i. j ( -
). A[1 : : j 1] ( ), A[j + 1 : : n] | . for
j . A[j]
17
( 2 )
( j 1-) , - . ( 4{7). 8 A[j]
.
, :
1. .
, for ( 1) 2{8, -
while ( 5) 6{7, 8.
if-then-else. -
begin end . (
-
, ,
.)
2. while, for, repeat if, then, else
, .
3. . ( ).
4. i j e ( i j e) j e i j ( ).
5. ( i; j; key) -
( ).
6. : A[i] i-
A. : : : A[1 : : j]
A, A[1]; A[2]; : : : ; A[j].
7. (objects), -
(elds), , , -
(attributes).
[ ]. , length, A
length[A]. ( ), .
, , -
. y x f f [y] = f [x]. ,
f [x] 3, f [x] = 3, f [y] = 3, y x x y .
nil, - .
8. (by value): -
; -
. -
18 1
, ,
| . , x | -
, x y, , , f [x] 3 | .
1.1-1 . 1.2, ,
Insertion-Sort A = h31; 41; 59; 26; 41; 58i.
1.1-2 Insertion-Sort , -
( -
).
1.1-3 :
: n A = ha1; a2; : : : ; ani v.: i, v = A[i],
nil, v A.
(linear search),
A v.
1.1-4 n- ,
n- A B. (
) (n+1)- C. -
-
.
1.2.
-
, , -
( , ), -
. , , -
.
(random-access machine, RAM), -
. ( -
-
.)
:
-
: ,
19
. -
. (,
, :
, .)
(input size)? -
.
(, ). -
, -
. -
, (,
).
(running time)
, |
, . ,
-
( - -
| x-).
(call) (
) (execution),
.
, Insertion-Sort
( ) , -
. j 2 n (
n = length[A] | ) , 5, tj . (,
, -
, .)
Insertion-Sort(A)
1 for j 2 to length[A] c1 n2 do key A[j] c2 n 13 . A[j] -
. A[1 : : j 1]. 0 n 14 i j 1 c4 n 15 while i > 0 and A[i] > key c5
Pn
j=2 tj
6 do A[i+ 1] A[i] c6P
n
j=2(tj 1)7 i i 1 c7
Pn
j=2(tj 1)8 A[i+ 1] key c8 n 1
c, m , cm -
. (
20 1
!) ,
T (n) = c1n+ c2(n 1) + c4(n 1) + c5nXj=2
tj +
+ c6
nXj=2
(tj 1) + c7nXj=2
(tj 1) + c8(n 1):
,
n, , n .
Insertion-Sort , -
. 5
( A[i] 6 key i = j 1), tj 1,
T (n) = c1n+ c2(n 1) + c4(n 1) + c5(n 1) + c8(n 1) == (c1 + c2 + c4 + c5 + c8)n (c2 + c4 + c5 + c8):
, T (n), -
n,
(linear function) n, . . T (n) = an + b
a b. ( -
c1; : : : ; c8.)
() ,
:
A[j] A[1] : : :A[j 1]. tj = j. ,
nXj=2
j =n(n + 1)
2 1;
nXj=2
(j 1) = n(n 1)2
(. . 3), ,
T (n) = c1n + c2(n 1) + c4(n 1) + c5n(n + 1)
2 1+
+ c6
n(n 1)
2
+ c7
n(n 1)
2
+ c8(n 1) =
=c5
2+c6
2+c7
2
n2 +
c1 + c2 + c4 +
c5
2 c6
2 c7
2+ c8
n
(c2 + c4 + c5 + c8):
T (n) | (quadratic function), . .
T (n) = an2 + bn + c. ( a, b c -
c1{c8.)
21
, ,
. -
(worst-case running time),
. ? .
, , , -
, ( ) .
( - ) . ,
( ).
. , , -
n Insertion-Sort. 5{8?
A[1 : : j 1] A[j], tj j=2, -
T (n) n.
-
(average-case running time, expexted running time) -
. ,
( -
), -
. (
, .)
Insertion-Sort
.
, i- -
ci. an2+bn+c.
,
(rate of growth, order of growth) n2, -
()
n2. : T (n) = (n2) (
).
: , ,
(n2), | (n3), (
;
| ).
22 1
1.2-1 n :
,
.
, .
(selection sort). -
.
, -.
1.2-2 (. 1.1-3).
,
( -
)?
? -?
1.2-3 x1; x2; : : : ; xn. ,
(n logn) , -
.
1.2-4 a0; a1; : : : ; an1 ; x. -
, (n2).
(n), ?
:
n1Xi=0
aixi = (: : :(an1x + an2)x+ : : :+ a1)x+ a0:
1.2-5 n3=1000 100n2 100n + 3 - -?
1.2-6 , -
. ?
1.3.
, -
. -
, (incremental approach): -
.
, -
(divide-and-conquer approach),
.
23
1.3.1.
(recursive algorithms):
,
.
. -
. (
| , ). -
,
.
. -
. -
.
-
. -
, (
1 ).
.
Merge(A; p; q; r). - A p; q; r,
. , p 6 q < r
A[p : : q] A[q + 1 : :r] , (merges)
A[p : :r].
(. 1.3-2), , Merge (n), n| (n = rp+1). . ,
.
?
( )
. , -
. , -
, (n).
Merge-Sort(A; p; r),
A[p : :r] A, -
. p > r
, .
q,
A[p : :q] ( dn=2e ) A[q + 1 : :r]( bn=2c ). bxc x ( , x),
dxe | , x.
24 1
sorted sequence |
merge |
initial sequence |
. 1.3 A = h5; 2; 4; 6; 1; 3; 2; 6i.
Merge-Sort(A; p; r)
1 if p < r
2 then q b(p+ r)=2c3 Merge-Sort(A; p; q)
4 Merge-Sort(A; q + 1; r)
5 Merge(A; p; q; r)
Merge-Sort(A; 1; length[A]). n = length[A] ,
2,
4
n (
n=2). . 1.3.
1.3.2.
? -
, -
,
(recurrence equation). ,
.
. ,
n a , -
b . ,
D(n), | C(n).
25
T (n)
n ( ): T (n) = aT (n=b) + D(n) + C(n).
n,
. n,
, - -
. n ,
.
, (n)
. ( 4, -
.)
. ( )
(1), | (n). -
T (n) =
((1); n = 1,
2T (n=2) + (n=2); n > 1.
4, T (n) =
(n logn), log (-
, , ,
). n -
,
(n2).
1.3-1 . 1.3, -
A = h3; 41; 52; 26; 38; 57; 9; 49i.
1.3-2 Merge(A; p; q; r).
1.3-3 ,
T (n) =
(2; n = 2,
2T (n=2) + n; n = 2k k > 1,
T (n) = n logn ( n, ).
1.3-4
: A[1 : :n], () -
A[1 : :n 1], A[n] - A[1 : :n1]. - .
26 1
1.3-5 (. 1.1-3), ,
, ,
, -
. (binary search).
, -
. , (logn).
1.3-6 , while 5{7
Insertion-Sort (. 1.1) - A[1 : : j 1] . (. 1.3-5),
(log n).
(n logn)?
1.3-7? S n ,
x. (n logn) , x
S?
, -
| .
: , , -
, : -
.
-
, .
.
| (100 -
)
(1 )? -
, n
, , 2n2 .
50n logn.
2 (106)2 108
= 20 000 5;56
50 (106) log(106) 106
1 000 17
.
, |
, -
. .
1 27
1.3-1
8n2 64n logn .
n -
? ?
1.3-2 n ,
100n2 , , 2n ?
1-1
, n f(n)
. ,
t? , -
.
1 1 1 1 1 1 1
lognpn
n
n logn
n2
n3
2n
n!
1-2
, n .
, -
. ,
.
. n k n=k. -
, (
) (nk).
. , -
(n log(n=k)).
.
(nk+n log(n=k)). k
n, - (n logn)?
. k -
28 1
?
1-3
A[1 : :n] | n . -
(inversions) , . .
i < j, A[i] > A[j].
. h2; 3; 8; 6; 1i.. -
n?
.
? .
. , -
n (n logn). (: -
.)
.
: , [4,5], [14], -
[14], [105], [121, 122, 123],
[142], [144, 145, 146], [164], -
, [167], [175], [201]. -
:
[24,25], [90].
1968 - [121, 122, 123],
.
.
, -
- (al-Khowarizm, al-Khwarizm).
, [4] -
-
. -
.
[123] -
. -
, (
). -
, (D.L. Shell),
-
.
,
, -
1938 . -
1 29
, (J. von Neumann), -
,
EDVAC 1945 .
I
, -
.
,
.
2 , -
( .), .
- , -
.
3
( -
).
4
. -
( 4.1),
. ,
, -
.
5 ,
, , , ,
.
6
. -
, (
) ,
.
2
1, ,
( ) -
n2, ( ) | n lgn.
,
n .
, -
.
,
(asymp-
totic eciency). ,
,
, . ( .)
2.1.
-
, .
-
2 , T (n) -
n (n2). -
: c1; c2 > 0
n0, c1n2 6 T (n) 6 c2n
2 n > n0. ,
g(n) | , f(n) = (g(n)) ,
c1; c2 > 0 n0, 0 6 c1g(n) 6 f(n) 6 c2g(n)
n > n0 (. . 2.1). ( f(n) = (g(n)) :
.)
[!!!!!!!!! 2.1 - : ]
f(n) = (g(n)), f(n) = O(g(n))
f(n) = (g(n)).
, -
: , f1(n) = (g(n)) f2(n) = (g(n)),
33
, f1(n) = f2(n)!
(g(n)) , f(n) g(n)
, . . -
n. , f g -
, n0 (
c1 c2 , n -
).
f(n) = (g(n)), , g(n) -
f(n).
: f(n) = (g(n)), g(n) = (f(n)).
1 , (1=2)n2 3n =(n2). , -
c1; c2 n0 ,
c1n2 6
1
2n2 3n 6 c2n2
n > n0. n2:
c1 61
2 3n6 c2
,
c2 = 1=2. , () n0 = 7 c1 =
1=14.
: -
, 6n3 6= (n2). , c2 n0, 6n3 6 c2n
2 n > n0. n 6 c2=6 n > n0| .
, -
,
n . -
,
( c1 c2). -
, f(n) = an2 + bn + c,
a; b; c | a > 0. -
, ,
f(n) = (n2). , -
c1 = a=4, c2 = 7a=4 n0 = 2 max((jbj=a);pjcj=a) (,
). ,
p(n) d -
p(n) = (nd) ( 2-1).
-
: (1) , -
. (
, .)
34 2
O- -
f(n) = (g(n)) :
. . , f(n) = O(g(n)),
c > 0 n0, 0 6 f(n) 6
cg(n) n > n0 , f(n) = (g(n)),
c > 0 n0, 0 6 cg(n) 6 f(n)
n > n0. :
, .
- , f g -
.
(. 2.1-5), :
2.1. f(n) g(n) f(n) =(g(n)) , f(n) = O(g(n))
f(n) = (g(n)). f(n) = O(g(n)) g(n) =
(f(n)) .
, an2 + bn + c = (n2) ( a).
an2 + bn + c = O(n2). : a > 0
an + b = O(n2) ( c = a + jbj n0 = 1). , an + b 6= (n2 an + b 6= (n2). (, O )
. , 1
T (n) = 2T (n=2) + (n)
. (n)
, ,
c1n c2n c1
c2 n.
, -
. ,
nXi=1
O(i)
h(1) + h(2) + : : :+ h(n), h(i) |
, h(i) = O(i). ,
n O(n2).
-
| 2n2 + 3n + 1 = 2n2 + (n) =
(n2). (2n2 + (n) = (n2))
: h(n) = (n)
, 2n2 + h(n) (n2).
35
o- !-
f(n) = O(g(n)) , n
f(n)=g(n) .
limn!1
f(n)
g(n)= 0; (2.1)
f(n) = o(g(n)) (
). , f(n) = o(g(n)),
" > 0 n0, 0 6 f(n) 6 "g(n)
n > n0. ( f(n) = o(g(n)) ,
f(n) g(n) n.)
: 2n = o(n2), 2n2 6= o(n2). !-: ,
f(n) !(g(n)) ( ), -
c n0, 0 6
cg(n) 6 f(n) n > n0. , f(n) = !(g(n))
, g(n) = o(f(n)).
: n2=2 = !(n), n2=2 6= !(n2).
, :
:
f(n) = (g(n)) g(n) = (h(n)) f(n) = (h(n)),
f(n) = O(g(n)) g(n) = O(h(n)) f(n) = O(h(n)),
f(n) = (g(n)) g(n) = (h(n)) f(n) = (h(n)),
f(n) = o(g(n)) g(n) = o(h(n)) f(n) = o(h(n)),
f(n) = !(g(n)) g(n) = !(h(n)) f(n) = !(h(n)).
:
f(n) = (f(n)), f(n) = O(f(n)), f(n) = (f(n)).
:
f(n) = (g(n)) g(n) = (f(n)).
:
f(n) = O(g(n)) g(n) = (f(n)),
f(n) = o(g(n)) g(n) = !(f(n)).
:
f g a b:
f(n) = O(g(n)) a 6 bf(n) = (g(n)) a > bf(n) = (g(n)) a = bf(n) = o(g(n)) a < bf(n) = !(g(n)) a > b
36 2
, , : -
. ,
a b a 6 b, a > b, -
, () f(n) g(n)
f(n) = O(g(n)), f(n) = (g(n)). , -
,
f(n) = n g(n) = n1+sinn (
g(n) 0 2). , -
a 6 b a < b a = b,
f(n) = O(g(n)) f(n) = o(g(n)) f(n) = (g(n)).
2.1-1 f(n) g(n)
n. , max(f(n); g(n)) = (f(n) + g(n)).
2.1-2 ,
(n+ a)b = (nb) (2.2)
a b > 0.
2.1-3 A -
O(n2) ?
2.1-4 , 2n+1 = O(2n)? 22n = O(2n)?
2.1-5 2.1.
2.1-6 f(n) g(n),
f(n) = O(g(n)), f(n) 6= o(g(n)) f(n) 6= (g(n)).
2.1-7 , f(n) = o(g(n)) f(n) = !(g(n))
.
2.1-8
, . ,
f(m;n) = O(g(m;n)), n0, m0 c,
0 6 f(m;n) 6 cg(m;n) n > n0 m > m0.
(g(m;n)) (g(m;n)).
2.2.
, f(n) (is monoton-
ically increasing), f(m) 6 f(n) m 6 n. ,
37
f(n) (is monotonically decreasing), -
f(m) > f(n) m 6 n. , f(n)
(is strictly increasing), f(m) < f(n) m < n.
, f(n) (is strictly decreasing),
f(m) > f(n) m < n.
x bxc (the oor of x) , . . , -
x. dxe (the ceiling of x) - , x. ,
x 1 < bxc 6 x 6 dxe < x+ 1
x. ,
dn=2e+ bn=2c = n
n. , x
a b
ddx=ae=be = dx=abe (2.3)
bbx=ac=bc = bx=abc (2.4)
( , , z
n n 6 z n 6 bzc ). x 7! bxc x 7! dxe .
() d n (polyno-
mial in n of degree d)
p(n) =
dXi=0
aini
(d | ). a0; a1; : : : ; ad
(coecients) . , -
ad ( , d
| , -
).
n p(n)
(
38 2
), ad > 0 p(n) -
( n) p(n) =
(nd).
a > 0 n 7! na , a 60 | . , f(n) -
, f(n) = nO(1), , ,
f(n) = O(nk) k (. . 2.2-2).
m, n a 6= 0
a0 = 1; (am)n = amn;
a1 = a; (am)n = (an)m;
a1 = 1=a; aman = am+n:
a > 1 n 7! an . 00 = 1.
n 7! an , - (exponential). a > 1
: b,
limn!1
nb
an= 0 (2.5)
, , nb = o(an). -
e = 2;71828 : : : ,
ex = 1 + x+
x2
2!+x3
3!+ : : : =
1Xk=0
xk
k!(2.6)
k! = 1 2 3 : : : k (. ). x
ex > 1 + x (2.7)
x = 0. jxj 6 1 ex :
1 + x 6 ex 6 1 + x+ x2 (2.8)
, ex = 1 + x + (x2) x ! 0, ( n ! 1 x! 0). x limn!1
1 + x
n
n= ex.
39
:
lgn = log2 n ( ),
lnn = logen ( ),
lgk n = (lgn)k ;
lg lgn = lg(lgn) ( ).
,
,
lg n+k lg(n)+k ( lg(n+k)). b > 1 n 7! logbn
( n) .
a > 0, b > 0, c > 0
n ( 1):
a = blogb a;
logc(ab) = logc a+ logc b;
logb an = n logb a;
logb a =logc a
logc b
logb(1=a) = logb a
logb a =1
loga b
alogb c = clogb a
(2.9)
,
O(logn) , -
.
( , )
lg.
(
jxj < 1):
ln(1 + x) = x x2
2+x3
3 x
4
4+x5
5 : : :
x > 1 x
1 + x6 ln(1 + x) 6 x (2.10)
x = 0.
, f(n) (is poly-
logaritmically bounded), f(n) = lgO(1) n. (2:5) -
n = lgm a = 2c
limm!1
lgbm
(2c)lgm= lim
m!1lgbm
mc= 0
, , lgb n = o(nc) c > 0. -
, -
.
40 2
n! ( , \n factorial")
1 n. 0! = 1, n! =
n (n 1)! n = 1; 2; 3; : : : . , n! 6 nn ( -
n). (Stirling's
approximation), ,
n! =p2n
n
e
n
(1 + (1=n)) (2.11)
,
n! = o(nn);
n! = !(2n);
lg(n!) = (n lgn):
:
p2n
n
e
n6 n! 6
p2n
n
e
ne1=12n
: (2.12)
log n ( ) : (iter-
ated logarithm). . -
i- , lg(i), :
lg(0) n = n lg(i)(n) = lg(lg(i1) n) i > 0. ( , lg(i1) n .) -: lgi n lg(i) n ,
.
lg n i > 0, - lg(i) n 6 1. , lg n | , lg, n , -
1.
lg n :
lg 2 = 1;
lg 4 = 2;
lg 16 = 3;
lg 65536 = 4;
lg 265536 = 5:
-
1080, 265536, n,
lg n > 5, .
41
(Fibonacci numbers) -
:
F0 = 0; F1 = 1; Fi = Fi1 + Fi2 i > 2 (2.13)
,
0; 1; 1; 2; 3; 5; 8; 13; 21; 34; 55 : : :
.
(golden
ratio) ' ':
' =1 +p5
2= 1;61803 : : : ;
' =1p5
2= 0;61803 : : :
(2.14)
,
Fi ='i 'ip5
(2.15)
(. 2.2-7). j'j 1).
2.2-3 (2.9).
2.2-4 , lg(n!) = (n lgn) n! = o(nn).
2.2-5? dlgne! ? dlg lg ne! ?
2.2-6? ( n): lg(lg n) lg(lgn)?
42 2
2.2-7 (2.15).
2.2-8 : Fi+2 > 'i
i > 0 ( ' | ).
2-1
p(n) = a0+a1n+ : : :+adnd | d,
ad > 0. ,
. p(n) = O(nk) k > d.
. p(n) = (nk) k 6 d.
. p(n) = (nk) k = d.
. p(n) = o(nk) k > d.
. p(n) = !(nk) k < d.
2-2
, A O, o, , ! B
(k > 1, " > 0, c > 1 | ).
A B O o !
. lgk n n"
. nk cn
.pn n
sinn
. 2n 2n=2
. nlgm mlgn
. lg(n!) lg(nn)
2-3
. 30 -
( O()) , -
( ):
lg(lg n) 2lgn (
p2)lgn n2 n! (lg n)!
(3=2)n n3 lg2 n lg(n!) 22n
n1= lgn
ln ln n lg n n 2n nlg lgn ln n 12lgn (lgn)lgn en 4lgn (n+ 1)!
plg n
lg lgn 2p2 lgn n 2n n lgn 22
n+1
. f(n), -
gi (f(n) O(gi(n))
gi(n) O(f(n))).
2 43
2-4
f(n) g(n) -
n. ,
. f(n) = O(g(n)), g(n) = O(f(n))?
. f(n) + g(n) = (min(f(n); g(n)))?
. f(n) = O(g(n)) lg(f(n)) = O(lg(g(n))), lg(g(n)) > 0
f(n) > 1 n?
. f(n) = O(g(n)) 2f(n) = O(2g(n))?
. f(n) = O((f(n))2)?
. f(n) = O(g(n)) g(n) = (f(n))?
. f(n) = (f(n=2))?
. f(n) + o(f(n)) = (f(n))?
2-5
- -
. 1 , . f(n) g(n) | -
. , f(n) = 1(g(n)), c, f(n) > cg(n) > 0 -
n.
. , f(n) g(n), -
n, f(n) = O(g(n)),
f(n) = 1(g(n)),
(g(n)) .
. -
1 ? f(n) = O(g(n)) , -
f(n) . -
O0 , f(n) = O0(g(n)), jf(n)j = O(g(n)).. -
2.1?
:
, f(n) = ~O(g(n)),
c k, 0 6 f(n) 6 cg(n) lgk n
n.
. ~ ~
2.1.
2-6
,
. f(n) |
, f(n) < n. f (i)(n), f (0)(n) = n
f(i)(n) = f(f (i1)(n)) i > 0. c fc (n) -
44 2
i > 0, f (i)(n) 6 c. ( , fc|
f , n
, c.) , fc (n) .
f(n) c
fc :
f(n) c fc (n). lg n 1
. n 1 0. n=2 1
. n=2 2
.pn 2
.pn 1
. n1=3 2
. n= lgn 2
[121], O- -
(P. Bachmann, 1892). -
o(g(n)) (E. Landau) 1909 -
.
- - [124]: -
O- ( -
). .
[121, 124] [33].
-
, , , .
, -
n ( ).
, -
: [1], [27].
(., , [12]
[192]). [121] -
, -
.
3
(for, while),
. , -
1.2, j-
, j.
nXj=1
j;
(n2).
( , 4 ).
3.1 .
3.2; -
-
.
3.1.
a1 + a2 + : : :+ an
nXk=1
ak:
n = 0 0.
, |
. ( , .)
.
(series)
a1 + a2 + a3 + : : : 1Xk=1
ak
46 3
limn!1
nXk=1
ak:
, , (di-
verges); . P1
k=1 jakj -,
P1k=1 ak (absolutely
convergent series); ,
. -
.
,
nXk=1
(cak + bk) = c
nXk=1
ak +
nXk=1
bk
c
a1; : : : ; an b1; : : : ; bn.
,
.
nX
k=1
k = 1 + 2+ : : :+ n;
,
(arithmetic series). -
nXk=1
k =1
2n(n+ 1) = (3.1)
= (n2): (3.2)
x 6= 1 (geometric ex-ponential series)
nXk=0
xk = 1 + x+ x2 + : : :+ xn
47
nXk=0
xk =
xn+1 1x 1 : (3.3)
(
jxj < 1) 1Xk=0
xk =
1
1 x: (3.4)
1+ 1=2+ 1=3+ : : :+ 1=n+ : : : ; n-
(nth harmonic number)
Hn = 1 +1
2+1
3+ : : :+
1
n=
nXk=1
1
k= lnn +O(1): (3.5)
-
, . , -
(3.4) x,
1Xk=0
kxk =
x
(1 x)2 : (3.6)
a0; a1; : : : ; an -
nXk=1
(ak ak1) = an a0 (3.7)
( ). --
telescoping series. ,
n1Xk=0
(ak ak+1) = a0 an:
48 3
P
n1k=1
1k(k+1)
. -
1k(k+1)
= 1k 1
k+1, ,
n1Xk=1
1
k(k + 1)=
n1Xk=1
1
k 1k + 1
= 1 1
n:
a1; : : : ; an
nYk=1
ak :
n = 0 defn (product) -
1. :
lg
nYk=1
ak =
nXk=1
lg ak:
3.1-1 P
n
k=1(2k 1).
3.1-2? , -
, P
n
k=1 1=(2k 1) = ln(pn) + O(1).
3.1-3? , P1
k=0(k 1)=2k = 0.
3.1-4? P1
k=1(2k + 1)x2k.
3.1-5 ,
O-
.
3.1-6 , -
-
.
3.1-7 Q
n
k=1 2 4k .
3.1-8? Q
n
k=2(1 1=k2).
49
3.2.
, -
( ).
,
. : ,
Sn =P
n
k=1 k n(n+1)=2. n =
1 . , Sn = n(n + 1)=2
n n+ 1. ,
n+1Xk=1
k =
nXk=1
k + (n+ 1) = n(n+ 1)=2 + (n+ 1) = (n+ 1)(n+ 2)=2:
. , -
, P
n
k=0 3k O(3n).
, , P
n
k=0 3k 6 c 3n
c ( ). n = 0 P0
k=0 3k = 1 6
c 1; c > 1. n, n+ 1. :
n+1Xk=0
3k =
nXk=0
3k + 3n+1 6 c3n + 3n+1 =
1
3+1
c
c3n+1 6 c3n+1:
, (1=3+ 1=c) 6 1, . . c > 3=2.
P
n
k=0 3k = O(3n), .
, -
, -
. , P
n
k=1 k = O(n). ,P1k=1 k = O(1). -
n, n. ,
n+1Xk=1
k =
nXk=1
k + (n+ 1) = O(n) + (n+ 1)[!]
= O(n+ 1):
, ,
O(n), n.
,
(,
50 3
). , -
P
n
k=1 k
nXk=1
k 6
nXk=1
n = n2:
nX
k=1
ak 6 namax;
amax | a1; : : : ; an.
|
. , Pn
k=0 ak , ak+1=ak 6 r
k > 0 r < 1. ak 6 a0rk,
:
nXk=0
ak 6
1Xk=0
a0rk = a0
1Xk=0
rk = a0
1
1 r :
P1
k=1 k3k .
1=3,
(k+ 1)3(k+1)
k3k=1
3 k + 1
k62
3
k > 1. ,
(1=3)(2=3)k,
1Xk=1
k3k 61Xk=1
1
32
3
k=1
3 11 23
= 1:
, 1,
r < 1,
. , (k + 1)-
k- kk+1 < 1.
1Xk=1
1
k= lim
n!1
nXk=1
1
k= lim
n!1(lgn) =1:
r,
.
51
.
P
n
k=1 k. -
, P
n
k=1 k > n.
O(n2) , -
:
nXk=1
k =
n=2Xk=1
k +
nXk=n=2+1
k >
n=2Xk=1
0 +
nXk=n=2+1
n
2=n
2
2:
(
, , -
).
-
, ( k0)
nXk=0
ak =
k0Xk=0
ak +
nXk=k0+1
ak = (1) +
nXk=k0+1
ak:
, 1Xk=0
k2
2k
(k + 1)2=2k+1
k2=2k=(k+ 1)2
2k2
1. ,
, .
(k > 3) 8=9,
1Xk=0
k2
2k=
2Xk=0
k2
2k+
1Xk=3
k2
2k6 O(1) +
9
8
1Xk=0
8
9
k
= O(1);
|
.
-
. , ,
Hn =P
n
k=11k. 1 n blgnc -
1+(1=2+1=3)+ (1=4+1=5+1=6+1=7)+ : : : .
1 ( ), -
blg nc + 1 ( ). ,
1 + 1=2 + 1=3 + : : :+ 1=n 6 lg n+ 1: (3.8)
52 3
f
P
n
k=m f(k) :
nZm1
f(x) dx 6
nXk=m
f(k) 6
n+1Zm
f(x) dx: (3.9)
, . 3.1, ( -
) ( -
) ( ). -
f :
n+1Zm
f(x) dx 6
nXk=m
f(k) 6
nZm1
f(x) dx: (3.10)
:
nXk=1
1
k>
n+1Z1
dx
x= ln(n + 1) (3.11)
( )
nXk=2
1
k6
nZ1
dx
x= lnn;
nXk=1
1
k6 lnn + 1: (3.12)
3.2-1 , P
n
k=11k2
-
( n).
3.2-2
blgncXk=0
dn=2ke:
53
. 3.1 Pn
k=mf(k) . -
. . . () ,
R nm1
f(x)dx 6Pn
k=mf(k). () -
, , Pn
k=mf(k) 6
R n+1m
f(x)dx.
54 3
3.2-3 , , n-
(lgn).
3.2-4 P
n
k=1 k3 .
3.2-5 -
-
(3.10)?
3-1
( r > 0 s > 0 ):
.P
n
k=1 kr.
.P
n
k=1 lgsk.
.P
n
k=1 kr lgs k.
[121] |
.
( -
[12] [192]).
4
, -
,
-
. (recur-
rences). , 1, -
Merge-Sort
T (n) =
((1); n = 1,
2T (n=2) + (n); n > 1.(4.1)
( ), T (n) = (n lgn).
,
, . . (
O) . -, ,
, -
( , substitution
method). -, ,
, (
, iteration method). , -
T (n) = aT (n=b) + f(n);
a > 1, b > 1 | , f(n) | -
. -
(master theorem). -
,
.
-
, .
, Merge-
56 4
Sort (T (n) -
n):
T (n) =
((1); n = 1,
T (dn=2e) + T (bn=2c) + (n); n > 1.(4.2)
, ,
, T (n) = (1) n. , -
(4.1)
T (n) = 2T (n=2)+ (n): (4.3)
, ( T (1)) -
,
T (n).
, , -
, ( ) ,
.
, ,
(. 4.1 4.5).
4.1.
: .
, ,
.
, -
. ,
T (n) = 2T (bn=2c) + n; (4.4)
(4.2) (4.3). , T (n) =
O(n lgn), . . T (n) 6 cn lgn c > 0. -
. bn=2c, . .T (bn=2c) 6 cbn=2c lg(bn=2c). ,
T (n) 6 2(cbn=2c lg(bn=2c)) + n 66 cn lg(n=2) + n = cn lgn cn lg 2 + n = cn lgn cn+ n 66 cn lgn:
c > 1.
-
, . . n. -
, n = 1 -
, c ( lg 1 = 0). -
,
57
n, . c ,
T (n) 6 cn lgn n = 2 n = 3. n
, n = 1
( bn=2c > 2 n > 3).
?
. -
.
.
T (n) = 2T (bn=2c+ 17) + n:
(4.4) 17
. , , -
: n
bn=2c + 17 bn=2c . , T (n) = O(n lgn) ,
(. . 4.1-5).
. -
, . , -
(4.1) T (n) = (n) (
n), T (n) = O(n2) (
). -
,
, .
,
. ,
.
.
T (n) = T (bn=2c) + T (dn=2e) + 1:
, T (n) = O(n). -
. , , , T (n) 6 cn -
c.
T (n) 6 cbn=2c+ cdn=2e+ 1 = cn+ 1;
c T (n) 6 cn.
,
O(n2), :
58 4
, ,
.
: T (n) 6 cn b - b c.
T (n) 6 (cbn=2c b) + (cdn=2e b) + 1 = cn 2b+ 1 6 cn b
b > 1. -
c .
:
, () , -
? |
,
.
:
T (n) = O(n)
(4.4). , T (n) 6 cn, -
T (n) 6 2(cbn=2c) + n 6 cn+ n = O(n):
, , , -
, cn c
c, O(n).
. , -
T (n) = 2T (bpnc) + ln n
,
. m = lg n,
T (2m) = 2T (2m=2) +m:
T (2m) S(m),
S(m) = 2S(m=2)+m;
(4.4). : S(m) = O(m lgm).
T (n) S(m),
T (n) = T (2m) = S(m) = O(m lgm) = O(lgn lg lgn):
59
, , , -
T (n) n,
. ,
S(m) T (n) n, 2m.
4.1-1 , T (n) = T (dn=2e) + 1 , T (n) =O(lgn).
4.1-2 , T (n) = 2T (bn=2c) + n T (n) =
(n lgn), T (n) = (n lg n).
4.1-3 n = 1
(4.4), -
, ?
4.1-4 , (4.2)
(n lgn).
4.1-5 , T (n) = 2T (bn=2c + 17) + n T (n) =O(n lgn).
4.1-6
T (n) = 2T (pn) + 1, ( , ,
| ).
4.2.
, ? , -
( ), ,
.
T (n) = 3T (bn=4c) + n:
, :
T (n) = n + 3T (bn=4c) = n+ 3(bn=4c+ 3T (bn=16c))= n + 3(bn=4c+ 3(bn=16c+ 3T (bn=64c)))= n + 3bn=4c+ 9bn=16c+ 27T (bn=64c);
, , (2.4), bbn=4c=4c = bn=16c bbn=16c=4c = bn=64c. , ? i- -
T (bn=4ic), T (1), bn=4ic = 1, . .
60 4
i > log4 n. , bn=4ic 6 n=4i, ( , -
3log4 n ):
T (n) 6 n+ 3n=4 + 9n=16 + 27n=64 + : : :+ 3log4 n(1)
6 n
1Xi=0
3
4
i+(nlog4 3)
= 4n+ o(n) = O(n)
( log4 n + 1
, 3log4 n nlog4 3,
o(n), log4 3 < 1.)
-
.
:
, .
,
( ).
( -
). , -
, (
n = 4k ). , -
,
,
. 4.3, -
(. 4-5).
(recursion tree). ,
. 4.1
T (n) = 2T (n=2) + n2:
, n | .
() (), T (n), -
T (n), T (n=2), T (n=4) . . -
T (n), -
. n2, | (n=2)2+(n=2)2 =
n2=2, | (n=4)2 + (n=4)2 + (n=4)2 + (n=4)2 = n2=4. -
,
-
. , T (n) = (n2).
. 4.2 | -
T (n) = T (n=3) + T (2n=3) + n
61
Total=
. 4.1 T (n) = 2T (n=2) + n2. - () lg n ( lg n+ 1 ).
. 4.2 T (n) = T (n=3) + T (2n=3) + n.
62 4
( ).
n. ,
1. -
,
n ! (2=3)n ! (2=3)2n ! ! 1 k = log3=2n ( k (2=3)kn = 1). T (n)
O(n lgn).
4.2-1 ( ) T (n) =
3T (bn=2c) + n, T (n).
4.2-2 , , T (n) =
T (n=3) + T (2n=3)+ n T (n) = (n lgn).
4.2-3 T (n) = 4T (bn=2c) + n T (n).
4.2-4 T (n) = T (n a) + T (a) + n, a > 1 | .
4.2-5 T (n) =
T (n) +T ((1)n) +n, | 0 < < 1.
4.3.
T (n) = aT (n=b) + f(n); (4.5)
a > 1 b > 1 | , f |
( ) .
; ,
.
(4.5) ,
n a n=b,
( T (n=b)) -
.
f(n) ( 1.3.2 f(n) = C(n) +D(n)).
, Merge-Sort a = 2, b = 2,
f(n) = (n).
, (4.5) -
: n=b .
63
T (n=b) T (bn=bc) T (dn=be). , , ,
.
4.1. a > 1 b > 1 | , f(n) | ,
T (n) n
T (n) = aT (n=b) + f(n);
n=b dn=be, bn=bc. :1. f(n) = O(nlogb a") " > 0, T (n) =
(nlogb a).
2. f(n) = (nlogb a), T (n) = (nlogb a lgn).
3. f(n) = (nlogb a+") " > 0 af(n=b) 6cf(n) c < 1 n,
T (n) = (f(n)).
? -
f(n) nlogb a; -
, T (n) ( 1 3).
( 2), -
(nlogb a lgn) = (f(n) lgn).
. -
, f(n) , nlogb a: -
n" " > 0.
f(n) nlogb a ,
af(n=b) 6 cf(n);
, , .
, -
: , , f(n) ,
nlogb a, , -
.
2 3. , -
.
, -
.
T (n) = 9T (n=3) + n:
a = 9, b = 3, f(n) = n, nlogb a = nlog3 9 = (n2).
64 4
f(n) = O(nlog3 9") " = 1, , T (n) = (n2).
T (n) = T (2n=3) + 1:
a = 1, b = 3=2, f(n) = 1 nlogb a = nlog3=2 1 = n0 = 1.
2, f(n) = (nlogb a) = (1), ,
T (n) = (lg n).
T (n) = 3T (n=4) + n lg n
a = 3, b = 4, f(n) = n lgn; nlogb a =
nlog4 3 = O(n0;793). ( " 0;2) , - . n af(n=b) =
3(n=4) lg(n=4) 6 (3=4)n lgn = cf(n) c = 3=4.
T (n) = (n lg n).
, : T (n) =
2T (n=2)+n lgn. a = 2, b = 2, f(n) = n lgn, nlogb a = n. ,
f(n) = n lgn , nlogb a, -
: f(n)=nlogb a = (n lgn)=n = lgn
n" " > 0. -
2 3;
. 4.4-2.
4.3-1 ,
. T (n) = 4T (n=2) + n;
. T (n) = 4T (n=2) + n2;
. T (n) = 4T (n=2) + n3.
4.3-2 A
T (n) = 7T (n=2)+n2, A0 | - T 0(n) = aT 0(n=4)+n2. a A0 , A?
4.3-3 , ,
T (n) = T (n=2)+(1) ( , . . 1.3-5)
T (n) = (lg n).
4.3-4 , ( 3) -
: f ,
", -
.
4.4 4.1 65
? 4.4 4.1
4.1 -
; ,
.
. -
n, b; -
. -
, -
. .
-
: -
, b,
,
.
, ,
, : T (n)
, T (n) = O(n) n,
, n. (,
T (n) = n n = 1; 2; 4; 8; : : : T (n) = n2 n.)
4.4.1.
T (n) , ()
b > 1 ( )
(4.5), . .
T (n) = aT (n=b) + f(n):
T :
( 4.2), (-
4.3) ( 4.4).
4.2. a > 1, b > 1 | , f(n) |
, b. T (n) | , b
T (n) = aT (n=b) + f(n) n > 1, T (1) > 0.
T (n) = (nlogb a) +
logb n1Xj=0
ajf(n=bj): (4.6)
66 4
. 4.3 T (n) = aT (n=b) + f(n) a- logb n n
logb a. - , (4.6).
.
,
T (n) = f(n) + aT (n=b)
= f(n) + af(n=b) + a2T (n=b2)
= f(n) + af(n=b) + a2f(n=b2) + : : :
+ alogb n1f(n=blogb n1) + alogb nT (1):
alogb n = nlogb a,
(nlogb a). ,
.
4.2
(. 4.3), a (
). f(n), a -
f(n=b), a2 f(n=b2) . .
j aj ; | f(n=bj). -
logb n ,
T (1); alogb n = nlogb a .
4.4 4.1 67
(4.6) , :
j- ajf(n=bj),
logb n1Xj=0
ajf(n=bj):
,
.
nlogb a 1, -
(nlogb a).
, -
.
, | ,
.
(4.6).
4.3. a > 1, b > 1 | , f(n) | -
, b. - g(n),
g(n) =
logb n1Xj=0
ajf(n=bj) (4.7)
( n, b). 1. f(n) = O(nlogb a") " > 0,
g(n) = O(nlogb a).
2. f(n) = (nlogb a), g(n) = (nlogb a lg n).3. af(n=b) 6 cf(n) c < 1
n > b, g(n) = (f(n)).
. 1. - f(n) = n, = logb a" f (4.7) : (
= logb a)
g(n) = f(n) + af(n=b) + a2f(n=b2) + : : :+ ak1f(n=bk1)
= n + a(n=b) + a2(n=b2) + : : :+ ak1(n=bk1); (4.8)
-
k = logb n a=b; 1,
< logb a b < a. -
(
). O(ak) = O(nlogb a).
.
68 4
2.
:
g(n) = f(n) + af(n=b) + a2f(n=b2) + : : :
= n + a(n=b) + a2(n=b2) + : : : ; (4.9)
= logba -
1 . logbn, -
nlogb a log
bn = (nlogb a lgn):
2 .
3. f ,
-
, c < 1.
c, -
( 1=(1 c)) ( , -
). , g(n) = (f(n)) n,
b. .
, n b.
4.4. a > 1, b > 1 | , f(n) |
, b. T (n) | , b
T (n) = aT (n=b) + f(n) n > 1 T (1) > 0. :
1. f(n) = O(nlogb a") " > 0, T (n) =(nlogb a).
2. f(n) = (nlogb a), T (n) = (nlogb a) lgn.
3. f(n) = (nlogb a+") " > 0 af(n=b) 6cf(n) c < 1 -
n, T (n) = (f(n)).
??????? ?
. 4.2 4.3.
T (n) = (nlogb a) +O(nlogb a) = (nlogb a):
T (n) = (nlogb a) + (nlogb a lg n) = (nlogb a lg n):
4.4 4.1 69
T (n) = (nlogb a) + (f(n)) = (f(n)):
, f(n) = (nlogb a+")
" > 0 ,
(. . 4.4-3).
4.4 .
4.4.2.
n, -
b. n=b -
T (n) = aT (dn=be) + f(n) (4.10)
T (n) = aT (bn=bc) + f(n): (4.11)
, .
, .
n; n=b; n=b2; : : : -
ni, :
ni =
(n; i = 0,
dni1=be; i > 0.(4.12)
( ). -
| , .
, logb n -
, n ( b)
.
, dxe 6 x+ 1 ,
n0 6 n;
n1 6n
b+ 1;
n2 6n
b2+1
b+ 1;
n3 6n
b3+
1
b2+1
b+ 1;
: : : : : : : : : : : : : : : : : : : : : :
1 + 1=b + 1=b2 + : : : 6 1=(b 1), i = blogb nc ni 6 n=b
i + b=(b 1) 6 b+ b=(b 1) = O(1).
70 4
(4.10),
T (n) = f(n0) + aT (n1)
= f(n0) + af(n1) + a2T (n2)
6 f(n0) + af(n1) + a2f(n2) + : : :+
+ ablogb nc1f(nblogb nc1) + ablogb ncT (nblogb nc)
= (nlogb a) +
blogb nc1Xj=0
ajf(nj): (4.13)
(4.6), n
b.
[ , .
, T (ndlog bne) . , f(n) , . .
n, n0.
, n0.
.]
g(n) =
blogb nc1Xj=0
ajf(nj): (4.14)
-
, ( -
), ( ) (-
). -
, -
( ,
). , -
n=bi ni. -
, b=(b 1), - . ,
f(nj) = O(nlogb a=aj) = O((n=bj)logb a), -
4.3 ( 2). , bj=n 6 1 j 6 blogb nc. f(n) = O(nlogb a) , c
4 71
nj
f(nj) 6 c
n
bj+
b
b 1
logb a= c
nlogb a
aj
1 +
bj
n bb 1
logb a6 c
nlogb a
aj
1 +
b
b 1
logb a= O
nlogb a
aj
:
, c(1 + b=(b 1))logb a | -. , 2 .
1 .
f(nj) = O(nlogb a"); ,
2, .
, n
.
, , nj
n=bj .
4.4-1? ni (4.12), b|
.
4.4-2? , f(n) = (nlogb a lgk n), k > 0,
(4.5) T (n) = (nlogb a lgk+1 n).
b.
4.4-3? , 3 -
: (af(n=b) 6 cf(n) -
c < 1) , " > 0,
f(n) = (nlogb a+").
4-1
-
(, T (n) | -
n 6 2):
. T (n) = 2T (n=2) + n3.
. T (n) = T (9n=10) + n.
72 4
. T (n) = 16T (n=4) + n2.
. T (n) = 7T (n=3) + n2.
. T (n) = 7T (n=2)+ n2.
. T (n) = 2T (n=4)+pn.
. T (n) = T (n 1) + n.. T (n) = T (
pn) + 1.
4-2
A[1 : :n] 0 n, -
. , -
B[0 : :n] , A,
, ( -
O(n)). A
.
-
A: -
A.
, -
O(n).
4-3
, -
, |
. ,
, . -
. -
:
1. (1).
2. (N), N | .
3. , -
. (q p+ 1), A[p : : q].
.
(. 1.3-5). -
? (-
, .)
. Merge-Sort -
1.3.1.
4-4
T (n) .
, T (n) | n 6 8.
. T (n) = 3T (n=2) + n lg n.
4 73
. T (n) = 3T (n=3 + 5) + n=2.
. T (n) = 2T (n=2) + n= lgn.
. T (n) = T (n 1) + 1=n.. T (n) = T (n 1) + lg n.. T (n) =
pnT (pn) + n.
4-5
T (n) n, -
b. -
n?
. T (n) h(n) | , -
( -
), T (n) 6 h(n) n, -
b > 1. , , h
: h(n) = O(h(n=b)). ,
T (n) = O(h(n)).
. T T (n) =
aT (n=b) + f(n) n > n0; a > 1, b > 1 f(n) -
. T (n) n 6 n0,
T (n0) 6 aT (n0=b)+f(n0): , T (n)
.
. 4.1
f(n).
4.4.
4-6
(2.13).
. -
(generating function), -
(formal power series)
F =1Xi=0
Fizi = 0 + z + z2 + 2z3 + 3z4 + 5z5 + 8z6 + 13z7 + : : :
. , F(z) = z + zF(z) + z2F(z).. ,
F(z) = z1 z z2 =
z
(1 'z)(1 b'z) = 1p5
1
1 'z 1
1 b'z
' =1 +p5
2= 1;61803 : : :
b' = 1 p52
= 0;61803 : : :
74 4
. ,
F(z) =1Xi=0
1p5('i b'i)zi:
. , Fi i > 0 'i=p5
. (: jb'j < 1.). , Fi+2 > '
i i > 0.
4-7
n ,
; , | . -
,
. -
,
.
A B
B A
B A
B A
B A
. , ,
, -
( ).
.
n , . ,
bn=2c , - .
. . ,
(n) .
( .)
[ : -
n , -
. ,
, . ,
. -
O(n) . -
, -
. ,
, , . -
, -
:
.]
4 75
(L. Fibonacci)
1202 . (A. De Moivre)
(. 4-6). -
-
, [26], -
( . 4.4-2). [121] [140]
,
. -
[164].
76 4
1257
5
, , -
, , ,
. , , -
( ).
5.1.
(set) (members, elements).
x S, x 2 S (- x S). x S, x =2 S. -
. , S = f1; 2; 3g - 1; 2; 3 . 2
, 4 | , 2 2 S, 4 =2 S. , -
. A B (are equal),
.
A = B. , f1; 2; 3; 1g= f1; 2; 3g= f3; 2; 1g. -
:
? (empty set), .
Z (integers); Z =f: : : ;2;1; 0; 1; 2; : : :g;
R () (real numbers);
N (natural numbers);N = f0; 1; 2; : : :g1
A
1 1 | .
78 5
B, ( x 2 A x 2 B), , A - (subset) B A B. A B, A
(proper subset) B; A B. ( A B , .) A
A A. A B -, A B B A. A, B C A B B C A C. A ? A. :
A ,
, B.
, fx : x 2Z x=2| g. x Z, ...
.
A B -
, -
(set operations):
(intersection) A B
A \B = fx : x 2 A x 2 Bg:
(union) A B -
A [B = fx : x 2 A x 2 Bg:
(dierence) A B -
A nB = fx : x 2 A x =2 Bg:
-
:
(empty set laws):
A \? = ?; A [? = A:
(idempotency laws):
A \ A = A; A [A = A:
(commutative laws):
A \B = B \ A; A [B = B [A:
79
??? n
. 5.1 , - (5.2). A;B;C .
(associative laws):
A \ (B \ C) = (A \ B) \ C; A [ (B [ C) = (A [ B) [ C:
(distributive laws):
A \ (B [ C) = (A\ B) [ (A \ C);A [ (B \ C) = (A [B) \ (A [ C) (5.1)
(absorption laws):
A \ (A[ B) = A; A [ (A \B) = A
(DeMorgan's laws):
A n (B \ C) = (A nB) [ (A n C);A n (B [ C) = (A nB) \ (A n C) (5.2)
. 5.1 (5.1);
A, B C .
,
(universe). , ,
,
Z . U ,
(complement) A A =
U nA. A U :
A = A; A \ A = ?; A [A = U:
(5.2) ,
A;B U
A \ B = A [ B; A [B = A \B:
A B (disjoint),
, . . A\B = ?. , S = fSig (partition) S,
80 5
Si (are pairwise disjoint),. . Si \ Sj = ? i 6= j, S, . .
S =[Si2S
Si
, S S, s 2 S Si .
S (car-
dinality), (size), jSj. ,
. -
: j?j = 0. (nite) | ; (innite) -
.
; , , -
, (countably innite);
, , -
(uncountable). Z,
R .
A B
jA [Bj = jAj+ jBj jA \Bj (5.3)
,
jA [ Bj 6 jAj+ jBj
A B , jA \ Bj = 0 : jA[Bj = jAj+ jBj. A B, jAj 6 jBj. n n- (n-
set); (sin-
gleton). k-
subset, k- (- -
).
S
, S; -
2S - (power set). ,
2fa;bg = f?; fag; fbg; fa; bgg. S 2S - 2jSj . a b (a; b)
(a; b) = fa; fa; bgg, (a; b) (b; a). [
81
.
, , (a; b) = (c; d)
(a = c) (b = d).]
(cartesian product) A
B ,
A, | B. : AB.
A B = f(a; b) : a 2 A b 2 Bg
, fa; bg fa; b; cg = f(a; a); (a; b); (a; c); (b; a); (b; b); (b; c)g. A B
:
jABj = jAj jBj: (5.4)
n A1; A2; : : : ; An
n- (n-tuples)
A1A2: : :An = f(a1; a2; : : : ; an) : ai 2 Ai i = 1; 2; : : : ; ng
( (a; b; c) ((a; b); c),
(a; b; c; d) ((a; b; c); d) ).
:
jA1 A2 : : : Anj = jA1j jA2j : : : jAnj
An = A A : : :A
n ; A
An jAjn. , n- n (. . 5.3).
5.1-1 -
(5.1).
5.1-2 -
:
A1 \ A2 \ : : :\An = A1 [ A2 [ : : :[ An;A1 [A2 [ : : :[An = A1 \ A2 \ : : :\ An:
82 5
5.1-3 (5.3), -
(principle of inclusion and exclusion):
jA1 [ A2 [ : : :[ Anj = jA1j+ jA2j+ : : :+ jAnj jA1 \ A2j jA1 \ A3j : : :+ jA1 \ A2 \A3j+ : : :+ (1)n1jA1 \ A2 \ : : :\ Anj
5.1-4 ,
.
5.1-5 , S n -
, - 2S 2n . (-
, S 2n .)
5.1-6 n-, -
.
5.2.
(binary relation) R
A B -
A B. (a; b) 2 R, aRb , a R b.
A A A.,
f(a; b) : a; b 2 N a < bg. n- - (n-ary relation) A1; A2; : : : ; An
A1 A2 : : :An. R AA (reex-
ive),
aRa
a 2 A. , = 6 - N,
83
a; b; c 2 A. ,
84 5
-
, .
, ,
| x, yRx
y. -
: x (max-
imal), , . . xRy -
x = y. , -
( ),
(
).
(total order, linear or-
der), a b aRb, bRa
( | ).
, 6 -
, -
| ( ,
).
5.2-1 , - Z , -
.
5.2-2 , n
a b (mod n) - Z. (, a b (mod n), q, ab = qn.) ?
5.2-3 ,
. , ;
. , ;
. , .
5.2-4 S | , R | -
S. , R ,
.
5.2-5 , -
, :
aRb bRa , aRa
. ?
85
5.3.
A B. (function), -
A B, f A B, - : a 2 A b 2 B, (a; b) 2 f . A - (domain) ; B
, -
codomain.
, f -
A B. -
A
B, B -
A. , -
f = f(a; b) : a 2 N b = a mod 2g f : N ! f0; 1g, a b 2 f0; 1g, a mod 2. f(0) = 0, f(1) = 1, f(2) = 0
. ,
g = f(a; b) : a; b 2 N a+ b g
, () (1; 3) (1; 5),
, ,
.
(a; b) f , -
, , b (value)
(argument) a, b = f(a). -
, , -
. ,
f : N! N f(n) = 2n, , f = f(n; 2n) :n 2 Ng. f; g : A! B (equal), f(a) = g(a) a 2 A. ( , - f : A ! B1 g : A ! B2 B1 6= B2, f(a) = g(a) a!) (nite sequence) n -
f ,
f0; 1; 2; : : : ; n1g. , . . hf(0); f(1); : : : ; f(n1)i. - (innite sequence) ,
N
. , , -
(2.13), h0; 1; 1; 2; 3; 5; 8; 13; 21; : : :i.
86 5
-
, -
. , f : A1 A2 : : :An ! B, f(a1; a2; : : : ; an) f((a1; a2; : : : ; an)). ai (ar-
gument) f ,
n- (a1; a2; : : : ; an).
b = f(a) f : A ! B a 2 A, b 2 B, b (image) a. A0 A f(A0)
f(A0) = fb 2 B : b = f(a) a 2 A0g:
(range) f
, . . f(A). , -
f : N! N, f(n) = 2n, , -
f(N) = fm :m = 2n n 2 Ng. f : A! B (surjection), -
, B, . .
b 2 B a 2 A. -, f : N! N, f(n) = bn=2c, - . f(n) = 2n ,
, f : N! N, , - -
. f : A ! B, , A B (onto B).
f : A ! B (injection), -,
, . . f(a) 6= f(a0) a 6= a0. , f(n) = 2n N N, -
n
(n=2, n ;
). f(n) = bn=2c , () f(2) = f(3) = 1.
one-to-one function.
f : A! B (bijection), - . ,
f(n) = (1)ndn=2e, ,
87
N Z, :
0! 01!12! 13!24! 2...
, Z
N. -
, Z -
N. -
(one-to-one correspon-
dence), -
A B. , -
A , (permutation) -
A.
f , (inverse)
f1
f1(b) = a , f(a) = b:
, f(n) = (1)ndn=2e
f1(m) =
(2m; m > 0,
2m 1; m < 0.
5.3-1 A B | , f : A! B | - . ,
. f | , jAj 6 jBj;. f | , jAj > jBj.
5.3-2 f : N! N, f(x) = x+ 1? Z!Z, .
5.3-3 .
( ,
.)
5.3-4? f : Z! ZZ.
88 5
. 5.2 . () - (V;E), V = f1; 2; 3; 4; 5; 6g E =f(1; 2); (2; 2); (2; 4); (2; 5); (4; 1); (4; 5); (5; 4); (6; 3)g. (2; 2) -. () G = (V; E), V = f1; 2; 3; 4; 5; 6g E = f(1; 2); (1; 5); (2; 5); (3; 6)g. 4 ( ). () (), f1; 2; 3; 6g.
5.4.
,
.
, -
,
. 23,
.
(directed graph)
(V;E), V | , E | -
V , . . V V . (digraph). -
V (vertex set);
(vertex;
vertices). E (edge set) -
; (edges). 5.2 () -
f1; 2; 3; 4; 5; 6g. , | . ,
- (self-loops),
.
(undirected) G = (V;E)
(V ) (unordered) :
fu; vg, u; v 2 V u 6= v. - (u; v) fu; vg; (u; v) (v; u)
. -
-,
( ). . 5.2 () -
f1; 2; 3; 4; 5; 6g.
89
-
( -
). (u; v) ,
(incident from, leaves) u (incident to,
enters) v. , . 5.2 () ,
2 ((2; 2); (2; 4); (2; 5)) ,
((1; 2); (2; 2)). (u; v) -
, (incident on vertices) u
v. , . 2.5 () , 2
( (1; 2) (2; 5)).
G (u; v), , v
u (is adjacent to u).
, -
. v
u , u ! v. 5.2 () 5.2 () 2 -
1, 1 2
( (2; 1) ).
(degree) -
. , . 5.2 ()
2 2. -
(out-degree), -
, (in-degree),
. -
(degree) . , -
2 . 5.2 () 2,
3 5.
k (path of length k) u v -
hv0; v1; v2; : : : ; vki, v0 = u, vk = v (vi1; vi) 2 E i = 1; 2; : : : ; k. -, k k . (con-
tains) v0; v1; : : : ; vk (v0; v1); (v1; v2); : : : ; (vk1; vk). v0 , vk | ;
, v0 vk. u u0
p u u0, , u0 - u p (u0 is reachable from u via p).
( ) up
u0. (simple), -
. , . 5.2 () h1; 2; 5; 4i - 3, h2; 5; 4; 5i , -.
(subpath) p = hv0; v1; : : : ; vki , , . .
hvi; vi+1; : : : ; vji i; j, - 0 6 i 6 j 6 k.
90 5
(cycle) , -
-
. hv0; v1; : : : ; vki , ( ),
. . v1; v2; : : : ; vk . -
1. , -
: k -
k (
k ). , . 5.2 () h1; 2; 4; 1i,h2; 4; 1; 2i h4; 1; 2; 4i . , h1; 2; 4; 5; 4; 1i . h2; 2i, - - (2; 2). , -
-, (simple).
hv0; v1; : : : ; vki - () , k > 3, v0 = vk
v1; v2; : : : ; vk . , . 5.2 () -
h1; 2; 5; 1i., , (acyclic).
(connected), -
-
. -
-
. -
(connected components) . , . 5.2 () -
: f1; 2; 5g, f3; 6g f4g. - ,
.
(strongly
connected), ( -
) . -
(strongly connected com-
ponents), -
u v v u.
, -
. . 5.2 ()
: f1; 2; 4; 5g, f3g f6g. , f3; 6g , 3 - 6, .
G = (V;E) G0 = (V 0; E0) (isomorphic),
f : V ! V 0 , : (u; v) 2 E , (f(u); f(v)) 2 E0. , - | ,
-. . 5.3 () -
91
. 5.3 () . () : - 4, | .
G G0 V = f1; 2; 3; 4; 5; 6g V 0 = fu; v; w; x; y; zg. f : V ! V 0, f(1) = u,f(2) = v, f(3) = w, f(4) = x, f(5) = y, f(6) = z, -
. , . 5.3 () ,
5 7 . , -
, ,
4, | .
G0 = (E0; V 0) (subgraph) G =(E; V ), E0 E V 0 V . G = (E; V ) V 0, , ,
. . G0 = (E 0; V 0),
E0 = f(u; v) 2 E : u; v 2 V 0g
G -
V 0 (subgraph of G induced by V 0). . 5.2 () f1; 2; 3; 6g . 5.2 () (1; 2), (2; 2), (6; 3).
G
(directed version),
fu; vg (u; v) (v; u), . -
, -
(undirected version),
, - (u; v)
(v; u) fu; vg. (neighbor) u , -
( ); ,
v u , v u
92 5
u v. v |
u v u .
.
(complete) , -
(
). (V;E)
(bipartite), V -
V1 V2 , -
. -
(forest), -
( -
; -
). - free
tree. (directed acyclic graph)
- dag ( ).
. ,
(multigraph),
, , -
, -. -
(hypergraph) ,
(hyperedges), -
, . -
-
.
5.4-1 , -
. . , -
,
(handshaking lemma): -
.
5.4-2 , k > 3 -
( ,
, , ).
5.4-3 , ( -
) u v,
u v. ,
, .
5.4-4 , (V;E)
1: jEj >jV j 1
93
5.4-5 , -
( ) .
, -
, -
?
5.4-6 . 5.2 ()
. 5.2 ().
5.4-7? -
, -
? (:
,
.)
5.5.
, -
. -
. -
11.4 23.1
.
5.5.1.
5.4, ( ,
free tree) -
. ,
() , (forest); -
, ( -
).
. . 5.4 () ; . 5.4 ()
. 5.4 () , .
5.4 () , ,
.
-
.
5.2 ( ). G = (V;E) | -
. :
1. G ( ).2. G -
.
3. G , , .
94 5
. 5.4 () . () . () , , , .
. 5.5 u v
4. G jEj = jV j 1.5. G jEj = jV j 1.6. G , -
.
. (1) ) (2): , ;
, , .
p1 p2 u
v (. 5.5). , ;
w | , x y |
, w p1 p2.
, ,
z. p0 w z ( x) p00 w z( y). p0 p00 ( ), z p1 w,
p2. ( p0
p00).(2) ) (3) , , . (u; v) | -
. ,
, u v | ,
.
(3)) (4) , , jEj > jV j1 (. 5.4-4). , jEj 6 jV j 1, . n = 1; 2 n 1 . G n > 3 -
. G k > 2 -
95
( , ).
(3). -
,
jV j k 6 jV j 2. , jV j 1.
(4)) (5) jEj = jV j1. , . ,
( ).
,
(). ,
|
,
.
(5) ) (6) G jEj = jV j 1. G k ; -
. ,
, k -
. , k = 1 .
( , (1)) (2)), .
(6)) (1) , - . , . -
, u v. ,
(u; v) . -
(u; v),
| , u
v, .
5.5.2. .
, (rooted tree), ,
( )
, (root). -
- nodes.
5.6 () 12
7.
x| r.
r x; ,
, (ancestors) x. y
x, x (descendant) y. -
.
x, x, -
(proper ancestors) (proper
descendants) x. [ : -
96 5
= 4, 0, 1 ..
. 5.6 () 4. : ( 7) , ( , 1) , ( , 2) . . . () , ( 3), .
-
, ,
.]
x ,
x, x . -
x (subtree rooted at x). ,
. 5.6 () 8 8, 6, 5 9.
(y; x) | x, y -
(parent) x, x y. [ -
(father) (son),
, - -
, | .
-
.]
, -
. , , -
siblings; ,
, ( )
. , ,
(leaf, external node). , ,
(internal).
-
(degree). , , ,
, -
(
, ).
x (depth) -
x.
97
. 5.7 . () , - . - , | -. () ( , - 7 5 , ). , . () (a), , . -.
(height) .
(ordered tree)
: -
(, ,
. .). . 5.6 -
, .
5.5.3. .
(binary tree) -
,
( ), : , - (root), , -
(left subtree) , , -
(right subtree) .
, , (emp-
ty). nil. , (left child)
; (right child) .
, ,
(child is absent).
. 5.7 ().
-
,
2. , ,
1 |
98 5
=3, 0, 1 ..
. 5.8 3 8 7 .
, -
. . 5.7 (,) ,
.
-
.
( , ). -
. 5.7 ().
: k-
(k-ary) k = 2. , -
(positional tree) ,
-
, . -
1, 2, 3 ,
( ) , -
(ith child is absent). k-
, k.
k- (complete k-ary tree) k-
,
k. ( -
.) . 5.8
3. ,
k- h.
0, k -
1, k2 k
kh h. ,
k- n logk n ( -
, ).
k- h
1 + k + k2 + : : :+ kh1 =kh 1k 1
(. (3.3)). , -
.
5 99
5.5-1 ( ), -
A, B C. -
A, B C A. ()
A, B C A.
A, B C A.
5.5-2 , n > 7 c n
, n
, n .
5.5-3 G = (V;E) | ,
v0,
v 2 V . , - G .
5.5-4 , -
2 .
5.5-5 , n -
blg nc.
5.5-6? (internal path length)
, 0
2, . -
. n | , i e
| . , e = i+ 2n.
5.5-7? 2d, d| . ,
1 ( , Kraft inequality)
5.5-8? , L -
,
[L=3; 2L=3].
5-1
k- (V;E) -
c : V ! f0; 1; : : : ; k 1g, c(u) 6= c(v) u v. (
.)
. , 2-.
100 5
. , -
G :
1. G .
2. G 2-.
3. G .
. d|
G. , G (d+ 1)-.
. , G O(jV j) , G O(pjV j)-.
5-2
. (,
,
.)
. n > 2
( ).
. 6 ,
, ,
.
.
,
.
. n n=2 ,
,
.
5-3
, -
, ,
-
.
. , n
,
3n=4 .
. , 3=4 () ,
,
3n=4 .
. ,
n A B ,
jAj = bn=2c, jBj = dn=2e, , , O(lgn).
5 101
(G. Boole) -
- ,
1854 . (-
)
(G. Cantor) 1874{1895 . -
(G.W. Leibnitz) -
. -
. 1736 ,
(L. Euler) , -
.
[94].
6
-
. ,
.
, -
.
6.1 (
). 6.2 -
-
. 6.3 -
, . 6.4 -
. -
6.5
( ). 6.6 -
:
, -
.
6.1.
,
. , n-
n . -
. ,
(. . 5.1).
, -
, -
.
(rule of sum) , jA [ Bj = jAj + jBj A B ( -
(5.3)).
103
, , 26 + 10 = 36
, 26, 10.
(rule of product) , jA Bj = jAj jBj A B, . (5.4). , 28 4 ,
28 4 = 112 ( ).
(string; - ) -
-
S ( ). , 8 -
( ) 3:
000; 001; 010; 011; 100; 101; 110; 111:
k k- (k-string). -
(substring) s0 s - s. k-
(k-substring), k. , 010
3- 01101001 ( 4), 111
| .
k S
Sk, jSjk - k. , 2k k. -
:
jSj ; jSj -, | k , jSj jSj : : : jSj(k ) .
(permutation) S -
, -
. ,
6 S = fa; b; cg :
abc; acb; bac; bca; cab; cba:
n! n ,
n ,
n 1 , n 2 , . .
104 6
,
,
. S n
k, n.
n k k,
S. ( | k-permutation.)
n(n 1)(n 2) (n k + 1) = n!(n k)! (6.1)
n , n1 - , k- , -
n k + 1 ., 12 = 4 3
fa; b; c; dg:
ab; ac; ad; ba; bc; bd; ca; cb; cd; da; db; dc:
-
(
n = k).
(k-combinations) n k k-
- n- .
, fa; b; c; dg 4 6 -
fa; bg; fa; cg; fa; dg; fb; cg; fb; dg; fc; dg:
n k k!
( n k), k-
k! , -
. (6.1) ,
n k
n!
k!(n k)! : (6.2)
k = 0 1, (
; , 0! = 1).
105
n k Ckn
( )n
k
:
Ck
n=
n
k
=
n!
k!(n k)! : (6.3)
k n k :
Ck
n= Cnk
n: (6.4)
Ckn (bi-
nomial coecients), (binomial ex-
pansion):
(x+ y)n =
nXk=0
Ck
nxkynk (6.5)
( (x + y)n, , -
k x n k y, k n, . . Ckn).
x = y = 1
2n =
nXk=0
Ck
n: (6.6)
( : 2n n -
: Ckn k .)
(
).
-
. 1 6 k 6 n
Ck
n =n(n 1) (n k + 1)
k(k 1) 1
=n
k
n 1k 1
n k + 1
1
>
n
k
k: (6.7)
106 6
k! > (ke)k, -
(2.12),
Ck
n=n(n 1) (n k + 1)
k(k 1) 1
6nk
k!(6.8)
6
en
k
k
: (6.9)
0 6 k 6 n (. . 6.1-12)
Ck
n6
nn
kk(n k)nk ; (6.10)
00 = 1. k = n, 0 6 6
1,
Cn
n 6nn
(n)n((1 )n)(1)n
=
1
1
1
1!n(6.11)
= 2nH(); (6.12)
H() = lg (1 ) lg(1 ) (6.13)
() , - (bi-
nary) entropy function. 0 lg 0 = 0,
H(0) = H(1) = 0.
6.1-1 k- n? (-
, ,
.) n?
6.1-2 (boolean function) n m -
| , ftrue; falsegn ftrue; falsegm. - n ?
n m ?
6.1-3 n ()
? , -
, .
107
6.1-4 -
f1; 2; : : : ; 100g , ?( .)
6.1-5
Ck
n=n
kCk1n1 (6.14)
0 < k 6 n.
6.1-6
Ck
n=
n
n kCk
n1
0 6 k < n.
6.1-7 k n, -
, . ,
,
Ck
n = Ck
n1 + Ck1n1:
6.1-8 6.1-7,
Ckn n = 0; 1; 2; : : : ; 6 k 0 n -
(C00 , C01 C
11 ,
).
(Pascal's triangle).
6.1-9
nXi=1
i = C2n+1:
6.1-10 , n > 0 Ckn ( k 0 n) k =
bn=2c k = dn=2e ( n , | ).
6.1-11? , n > 0, j > 0, k > 0, j + k 6 n
Cj+kn 6 C
j
nCk
nj
, -
(6.3).
?
6.1-12? (6.10) k 6 n=2;
, (6.4), k 6 n.
108 6
6.1-13? , ,
Cn
2n =22npn
(1 + O(1=n)): (6.16)
6.1-14? H(), , -
= 1=2. H(1=2)?
6.2.
-
.
S, -
(sample space), | -
(elementary events).
. -
, -
, 2, -
() ():
S = f;; ; g
(event) S.
,
, . . f; g. S ( ) -
(certain event), ? -
(null event). A B -
(mutually exclusive), A\B = ?. - s 2 S fsg S. .
S. , -
S,
. - (
; -
). ,
(
) .
(probability distribution) -
S P, -
109
( -
, - probability axioms):
1. PA > 0 A.
2. PfSg = 1.3. PfA[Bg = PfAg+PfBg -
A B, , ,
Pf[iAig =Xi
PfAig:
( ) -
A1; A2; : : :
PfAg A (probability ofthe event A). , 2 -
, 1 -
.
.
Pf?g = 0. A B, PfAg 6 PfBg. A SA (- A), PfAg = 1 PfAg. A B
PfA [Bg = PfAg+ PfBg PfA \ Bg (6.17)6 PfAg+ PfBg: (6.18)
,
1=4. -
Pf;; g = Pfg+ Pfg+ Pfg= 3=4:
: , ,
Pfg = 1=4, - 1 1=4 = 3=4.
6.2.1.
-
(discrete). -
PfAg =Xs2A
Pfsg;
A,
-
. S ,
110 6
(uniform
probability distribution) S. -
, k
jSj, k=jSj. - s 2 S. -
(ipping a fair coin),
1=2. n , -
S = f; gn, 2n . S -
n f; g, 1=2n.
A = f k n k g
S jAj = Ckn , Ck
n, k . , -
A PfAg = Ckn=2n.
-
[a; b]. [c; d] [a; b]
Pf[c; d]g= d cb a:
, ,
, , -
. , -
.
, 0, -
(c; d] (c; d) -
.
-
(continuous uniform probability distribu-
tion).
. , ,
. ,
?
111
. -
, (
) 1=3.
(conditional probability) A B;
PfAjBg
PfAjBg = PfA \BgPfBg ; (6.19)
( , PfBg 6= 0). : B ; -
, ,
A.
(independent),
PfA \Bg = PfAgPfBg;
PfBg 6= 0
PfAjBg = PfAg:
,
1=2, ( -
) | 1=4. -
,
. :
1=2, -
1=4.
.
, -
,
, (. . 1=2).
A1; A2; : : : ; An
(pairwise independent),
PfAi \Ajg = PfAigPfAjg
1 6 i < j 6 n.
A1; A2; ; An - (mutually independent), Ai1 ; Ai2 ; : : : ; Aik ( 2 6 k 6 n 1 6 i1 < i2 < < ik 6 n)
PfAi1 \Ai2 \ : : :\Aikg = PfAi1gPfAi2g PfAikg:
112 6
| : , -
, -
,
.
(6.19) ,
A B, , -
PfA \ Bg = PfBgPfAjBg= PfAgPfBjAg:
(6.20)
PfAjBg,
PfAjBg = PfAgPfBjAgPfBg ; (6.21)
(Bayes's theorem).
: B = (B \A)[ (B \A), B \A B \A | ,
PfBg = PfB \ Ag+ PfB \Ag= PfAgPfBjAg+ PfAgPfBjAg:
(6.21),
:
PfAjBg = PfAgPfBjAgPfAgPfBjAg+ PfAgPfBjAg
:
.
: ,
.
, . ,
. ,
?
. -
A | , B |
. PfAjBg.: PfAg = 1=2, PfBjAg = 1, PfAg = 1=2 PfBjAg = 1=4,,
PfBjAg = (1=2) 1(1=2) 1 + (1=2) (1=4) = 4=5:
113
6.2-1 (Boole's inequality):
PfA1 [A2 [ : : :g 6 PfA1g+ PfA2g+ : : : (6.22)
A1; A2; : : : .
6.2-2 , -
. ,
, ? (
.)
6.2-3 ( 1 10)
. ,
?
6.2-4? ,
p (0 < p < 1). -
, ,
. (: ; -
, ; ,
.)
6.2-5? -
a=b, , -
? ( a b , 0 < a < b, -
lg b.)
6.2-6 ,
PfAjBg+ PfAjBg = 1:
6.2-7 , A1; A2; : : : ; An,
PfA1 \ A2 \ : : :\Ang == PfA1g PfA2jA1g PfA3jA1\A2g PfAnjA1\A2\ \An1g:
6.2-8?