11. 11
.
,
, .
( , -
, ). :
Introduction to Algorithms
MIT Labratory for Computer Science
545 Technology Square
Cambridge, Massachusetts 02139
-
,
algorithms@theory.lcs.mit.edu , Subject:
help . ,
.
, -
( 1997), , -
, , , -
( , . ).
, , -
: , !
, algor@mccme.ru
( , 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. 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,
16. 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 ;1
5 while i > 0 and A i] > key
6 do A i+ 1] A i]
7 i i;1
8 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. 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. 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. 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 n
2 do key A j] c2 n ;1
3 . A j] -
. A 1::j ;1]. 0 n ;1
4 i j ;1 c4 n ;1
5 while i > 0 and A i] > key c5
Pn
j=2 tj
6 do A i+ 1] A i] c6
Pn
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 -
. (
36. 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. 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) =
dX
i=0
aini
(d | ). a0 a1 ::: ad
(coe cients) . , -
ad ( , d
| , -
).
n p(n)
(
38. 38 2
), ad > 0 p(n) -
( n) p(n) =
(nd).
a > 0 n 7! na , a 6
0 | . , 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
a;1 = 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!
+ ::: =
1X
k=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. 39
:
lgn = log2 n ( ),
lnn = loge n ( ),
lgk n = (lgn)k
lglgn = lg(lgn) ( ).
,
,
lgn+k lg(n)+k ( lg(n+k)). b > 1 n 7! logb n
( n) .
a > 0, b > 0, c > 0
n ( 1):
a = blogb a
logc(ab) = logc a + logc b
logb an = nlogb 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 ; x4
4 + x5
5 ;:::
x > ;1
x
1 + x 6 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
lgb m
(2c)lgm = limm!1
lgb m
mc = 0
, , lgb n = o(nc) c > 0. -
, -
.
40. 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! =
p
2 n n
e
n
(1+ (1=n)) (2.11)
,
n! = o(nn)
n! = !(2n)
lg(n!) = (nlgn):
:
p
2 n n
e
n
6 n! 6
p
2 n n
e
n
e1=12n: (2.12)
log n (
) : (iter-
ated logarithm). . -
i- , lg(i), :
lg(0) n = n lg(i)(n) = lg(lg(i;1) n) i > 0. (
, lg(i;1) 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. 41
(Fibonacci numbers) -
:
F0 = 0 F1 = 1 Fi = Fi;1 + Fi;2 i > 2 (2.13)
,
0 1 1 2 3 5 8 13 21 34 55 :::
.
(golden
ratio) ' ^':
' = 1 +
p
5
2 = 1 61803:::
^' = 1 ;
p
5
2 = ;0 61803:::
(2.14)
,
Fi = 'i ; ^'i
p
5
(2.15)
( . 2.2-7). j^'j <
1, j^'i=
p
5j 1=
p
5 < 1=2, Fi
'i=
p
5, .
Fi ( ) i.
2.2-1 , f(n)
g(n) f(n) + g(n) f(g(n)) -
. f(n) g(n) n,
f(n)g(n) .
2.2-2 , T(n) = nO(1) ,
k, T(n) = O(nk) ( ,
T(n) > 1).
2.2-3 (2.9).
2.2-4 , lg(n!) = (nlgn) n! = o(nn).
2.2-5? dlgne! ?
dlglgne! ?
2.2-6? ( n): lg(lg n) lg (lgn)?
42. 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 nsinn
. 2n 2n=2
. nlgm mlgn
. lg(n!) lg(nn)
2-3
. 30 -
( O( )) , -
( ):
lg(lg n) 2lg n (
p
2)lgn n2 n! (lgn)!
(3=2)n n3 lg2 n lg(n!) 22n
n1=lgn
lnlnn lg n n 2n nlglgn lnn 1
2lgn (lgn)lgn en 4lgn (n+ 1)!
plgn
lg lgn 2
p2lgn n 2n nlgn 22n+1
. f(n), -
gi (f(n) O(gi(n))
gi(n) O(f(n))).
71. 4 71
nj
f(nj) 6 c n
bj + b
b;1
logb a
= c nlogb a
aj 1+ bj
n
b
b;1
logb a
6 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.
77. 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. 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 2
Z 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:
(di erence) A B -
AnB = 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. 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) (AC)
A (B C) = (A B) (A C)
(5.1)
(absorption laws):
A (A B) = A A (AB) = A
(DeMorgan's laws):
A n(B C) = (AnB) (AnC)
A n(B C) = (AnB) (AnC)
(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 = AB:
A B (disjoint),
, . . AB = ?. ,
S = fSig
(partition) S,
80. 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)
| (in nite) -
.
, , -
, (countably in nite)
, , -
(uncountable). Z ,
R .
A B
jA Bj = jAj+ jBj; jABj (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. 81
.
, , (a b) = (c d)
(a = c) (b = d).]
(cartesian product) A
B ,
A, | B. : A B.
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
:
jA Bj = jAj jBj: (5.4)
n A1 A2 ::: An
n- (n-tuples)
A1 A2 ::: 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. 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)n;1jA1 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 A A (re ex-
ive),
aRa
a 2 A. , = 6 -
N, <
. R (symmetric),
aRb bRa
a b 2 A. ,
< 6 | . R
(transitive),
aRb bRc aRc
83. 83
a b c 2 A. , < , 6 =
, R = f(a b) : a b 2 N a = b; 1g |
, 3R4 4R5, 3R5.
, , -
, -
(equivalence relation). R |
A, (equiv-
alence class) a 2 A a] = fb 2 A : aRbg
, a. , -
,
a b , a + b . -
( R) -
. , a + a ,
a+ b = b+ a, R ,
a + b b + c | , a+ c = (a + b)+ (b+ c) ; 2b -
, R .
4 4] = f0 2 4 6 :::g, 3
3] = f1 3 5 7 :::g.
:
5.1 ( ).
A
A. , -
A
.
. , -
, , -
A. -
a 2 a], a.
, a] b] , -
. c | , aRc, bRc, cRb ( -
) aRb ( ). , b] a]:
x | b, bRx aRx.
, a] b] a] = b].
.
R A -
,
aRb bRa a = b:
, 6 -
, a 6 b b 6 a a = b. -
, -
(partial order),
-
(partially ordered set). ,
84. 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,
a;b = qn.)
?
5.2-3 ,
. ,
. ,
. , .
5.2-4 S | , R | -
S. , R ,
.
5.2-5 , -
, :
aRb bRa , aRa
. ?
85. 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 ::: n;1g.
, . . hf(0) f(1) ::: f(n;1)i. -
(in nite sequence) ,
N
. , , -
(2.13), h0 1 1 2 3 5 8 13 21 :::i.
86. 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. 87
N Z, :
0! 0
1!;1
2! 1
3!;2
4! 2
...
, Z
N. -
, Z -
N. -
(one-to-one correspon-
dence), -
A B. , -
A , (permutation) -
A.
f , (inverse)
f;1
f;1(b) = a , f(a) = b:
, f(n) = (;1)ndn=2e
f;1(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! Z Z.
88. 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. 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 (vi;1 vi) 2 E i = 1 2 ::: k. -
, k k . (con-
tains) v0 v1 ::: vk (v0 v1) (v1 v2) ::: (vk;1 vk).
v0 , vk |
, v0 vk. u u0
p u u0, , u0 -
u p (u0 is reachable from u via p).
( ) u p
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.
91. 91
. 5.3 ( ) . ( ) : -
4, | .
G G0 V = f1 2 3 4 5 6g
V 0 = fu v w x y zg. f : V ! V0, 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 V0) (subgraph) G =
(E V), E0 E V 0 V. G = (E V)
V0,
, ,
. . G0 = (E0 V0),
E0 = f(u v) 2 E : u v 2 V0g
G -
V0 (subgraph of G induced by V0).
. 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. 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 >
jVj;1
94. 94 5
. 5.4 ( ) . ( ) . ( ) ,
, , .
. 5.5 u v
4. G jEj = jVj;1.
5. G jEj = jVj;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 > jVj;1 ( . 5.4-
4). , jEj 6 jVj ; 1, .
n = 1 2 n;1 . G
n > 3 -
. G k > 2 -
95. 95
( , ).
(3). -
,
jVj; k 6 jVj; 2. , jVj; 1
.
(4) ) (5) jEj = jVj;1. ,
. ,
( ).
,
( ). ,
|
,
.
(5) ) (6) G jEj = jVj ; 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. : -
98. 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 + :::+ kh;1 = kh ;1
k ; 1
( . (3.3)). , -
.
99. 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 -
blgnc.
5.5-6? (internal path length)
, 0
2, . -
. n | , i e
| . , e = i + 2n.
5.5-7? 2;d, 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. 100 5
. , -
G :
1. G .
2. G 2- .
3. G .
. d |
G. , G (d + 1)- .
. , G O(jVj) , G
O(
p
jVj)- .
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).
103. 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. 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 , n;1 -
, 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. 105
n k Ck
n
( )
;n
k :
Ck
n = n
k = n!
k!(n; k)!: (6.3)
k n ;k :
Ck
n = Cn;k
n : (6.4)
Ck
n (bi-
nomial coe cients), (binomial ex-
pansion):
(x + y)n =
nX
k=0
Ck
nxkyn;k (6.5)
( (x + y)n, , -
k x n ; k y,
k n, . . Ck
n).
x = y = 1
2n =
nX
k=0
Ck
n: (6.6)
( : 2n n -
: Ck
n k .)
(
).
-
. 1 6 k 6 n
Ck
n = n(n; 1) (n; k + 1)
k(k ;1) 1
= n
k
n;1
k ;1
n ;k + 1
1
> n
k
k
: (6.7)
106. 106 6
k! > (k
e)k, -
(2.12),
Ck
n = n(n ;1) (n;k + 1)
k(k ;1) 1
6 nk
k!
(6.8)
6 en
k
k
: (6.9)
0 6 k 6 n ( . . 6.1-12)
Ck
n 6 nn
kk(n;k)n;k (6.10)
00 = 1. k = n, 0 6 6
1,
C n
n 6 nn
( 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. 0lg0 = 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. 107
6.1-4 -
f1 2 ::: 100g , ?
( .)
6.1-5
Ck
n = n
kCk;1
n;1 (6.14)
0 < k 6 n.
6.1-6
Ck
n = n
n; kCk
n;1
0 6 k < n.
6.1-7 k n, -
, . ,
,
Ck
n = Ck
n;1 + Ck;1
n;1:
6.1-8 6.1-7,
Ck
n n = 0 1 2 ::: 6 k 0 n -
(C0
0 , C0
1 C1
1 ,
).
(Pascal's triangle).
6.1-9
nX
i=1
i = C2
n+1:
6.1-10 , n > 0 Ck
n
( k 0 n) k =
bn=2c k = dn=2e ( n ,
| ).
6.1-11? , n > 0, j > 0, k > 0, j + k 6 n
Cj+k
n 6 Cj
nCk
n;j
, -
(6.3).
?
6.1-12? (6.10) k 6 n=2
, (6.4), k 6 n.
108. 108 6
6.1-13? , ,
Cn
2n = 22n
p n(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), AB = ?. -
s 2 S fsg S.
.
S. , -
S,
. - (
-
). ,
(
) .
(probability distribution) -
S P, -
109. 109
( -
, - probability axioms):
1. PA > 0 A.
2. PfSg = 1.
3. PfA Bg = PfAg+PfBg -
A B, , ,
Pf iAig =
X
i
PfAig:
( ) -
A1 A2 :::
PfAg A (probability of
the event A). , 2 -
, 1 -
.
.
Pf?g = 0. A B,
PfAg 6 PfBg. A S;A ( -
A), PfAg = 1;PfAg. A
B
PfA Bg = PfAg+ PfBg ;PfA Bg (6.17)
6 PfAg+ PfBg: (6.18)
,
1=4. -
Pf g = Pf g+ Pf g+ Pf g
= 3=4:
: , ,
Pf g = 1=4, -
1; 1=4 = 3=4.
6.2.1.
-
(discrete). -
PfAg =
X
s2A
Pfsg
A,
-
. S ,
110. 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 = Ck
n ,
Ck
n , k . , -
A PfAg = Ck
n=2n.
-
a b]. c d] a b]
Pf c d]g= d; c
b; a:
, ,
, , -
. , -
.
, 0, -
(c d] (c d) -
.
-
(continuous uniform probability distribu-
tion).
. , ,
. ,
?
111. 111
. -
, (
) 1=3.
(conditional probability) A B
PfAjBg
PfAjBg = PfABg
PfBg (6.19)
( , PfBg 6= 0). :
B -
, ,
A.
(independent),
PfABg = 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 = PfAi1 gPfAi2 g PfAikg:
114. 114 6
( ) ,
,
.
6.2-10? ,
( , , ).
,
, , .
, . -
, ?
6.2-11?
X, Y Z, . -
. , ,
.
X -
Y Z, , ,
, , , ,
. -
X, Y . X , ,
1=2 (
, Z). ?
6.3.
(discrete random variable) X |
,
S . -
-
. ( X -
.)
, ,
.
X x -
X = x fs 2 S : X(s) = xg
PfX = xg =
X
fs2S:X(s)=xg
Pfsg:
f(x) = PfX = xg
(probability
density function) X.
115. 115
, PfX = xg > 0
P
x PfX = xg = 1.
-
. 36 , -
. , -
: Pfsg = 1=36. X,
, .
PfX = 3g = 5=36, X 3 5 -
( , (1 3), (2 3), (3 3), (3 2) (3 1)).
,
. X Y | -
,
f(x y) = PfX = x Y = yg
(joint probability density function) X Y. -
y
PfY = yg =
X
x
PfX = x Y = yg:
, x,
PfX = xg =
X
y
PfX = x Y = yg:
(6.19), -
PfX = xjY = yg = PfX = x Y = yg
PfY = yg :
(independent),
X = x Y = y
x y, , PfX = x Y = yg =
PfX = xgPfY = yg x y.
, -
,
, .
-
| (mean), -
(expected value, expectation). -
X
M X] =
X
x
xPfX = xg (6.23)
116. 116 6
,
. -
X , ,
.
-
3 2
. X -
,
M X] = 6 Pf2 g+ 1 Pf1 1 g;4 Pf2 g
= 6(1=4)+ 1(1=2); 4(1=4)
= 1:
-
:
M X + Y ] = M X]+ M Y ] (6.24)
M X] M Y] .
.
X | , g(x) | .
g(X) (
). (
)
M g(X)] =
X
x
g(x)PfX = xg:
g(x) = ax, a | ,
M aX] = aM X]: (6.25)
( ): X Y
a
M aX + Y ] = aM X]+ M Y]: (6.26)
X Y -
,
M XY] =
X
x
X
y
xyPfX = x Y = yg
=
X
x
X
y
xyPfX = xgPfY = yg
= (
X
x
xPfX = xg)(
X
y
yPfY = yg)
= M X]M Y]:
117. 117
, n -
X1 X2 ::: Xn, ,
M X1X2 Xn] = M X1]M X2] M Xn]: (6.27)
X -
(0 1 2 :::), -
:
M X] =
1X
i=0
iPfX = ig
=
1X
i=0
i(PfX > ig; PfX > i + 1g)
=
1X
i=1
PfX > ig: (6.28)
, PfX > ig i
i;1 (
PfX > 0g, ).
(variance) X
M X]
D X] = M (X ;M X])2]
= M X2 ;2XM X]+ M2 X]]
= M X2]; 2M XM X]]+ M2 X]
= M X2]; 2M2 X]+ M2 X]
= M X2]; M2 X]: (6.29)
M M2 X]] = M2 X] M XM X]] = M2 X] ,
M X] | ( )
(6.25), a = M X]. (6.29) :
M X2] = D X]+ M2 X] (6.30)
a
a2 :
D aX] = a2D X]:
X Y ,
D X + Y] = D X]+ D Y]:
118. 118 6
, n
X1 ::: Xn :
D
"
nX
i=1
Xi
#
=
nX
i=1
D Xi]: (6.31)
(standard deviation) -
X .
X
, ,
. 2.
6.3-1 .
?
-
?
6.3-2 A 1::n] n
-
. ,
? ,
?
6.3-3 .
1 6. -
. ,
.
,
.
?
6.3-4? X Y | . -
, f(X) g(Y) f
g.
6.3-5? X | -
M X].
(Markov's inequality)
PfX > tg 6 M X]=t (6.32)
t > 0.
.]
6.3-6? S | , -
X X0, X(s) > X0(s)
119. 119
s 2 S. , t,
PfX > tg > PfX0 > tg:
6.3-7 : -
?
6.3-8 , ,
0 1, D X] = M X]M 1;X].
6.3-9 (6.29), D aX] =
a2D X].
6.4.
|
(Bernouilli trials)
n , -
: (success), -
p, (failure), 1 ; p.
| -
| .
,
p ( q = 1;p).
? -
X | 1 2 :::,
PfX = kg = qk;1p (6.33)
( k, k ;1
, k- ). -
, (6.33),
(geometric distribution). . 6.1.
, p < 1, -
, (3.6):
M X] =
1X
k=1
kqk;1p = p
q
1X
k=0
kqk = p
q
q
(1;q)2 = 1=p: (6.34)
, 1=p ,
, , -
p.
120. 120 6
. 6.1 p = 1=3 -
q = 1 ;p. 1=p = 3.
,
D X] = q=p2: (6.35)
: ,
. 36 -
, 6 2 -
. p 8=36 = 2=9,
1=p = 9=2 = 4 5 ,
.
n
p q = 1;p. -
X | n .
0 1 ::: n,
PfX = kg = Ck
npk(1; p)n;k (6.36)
k = 0 1 ::: n Ck
n
n k ,
pkqn;k. (6.36) (bino-
mial distribution).
121. 121
. 6.2 b(k 15 1=3), n = 15 -
,
p = 1=3. np = 5.
b(k n p) = Ck
npk(1; p)n;k: (6.37)
6.2.
, -
(6.37) | k- (p+q)n. ,
p+ q = 1,
nX
k=0
b(k n p) = 1 (6.38)
( 2).
,
, (6.14)
(6.38). X | ,
b(k n p). q = 1 ;p. -
122. 122 6
,
M X] =
nX
k=0
kb(k n p)
=
nX
k=1
kCk
npkqn;k
= np
nX
k=1
Ck;1
n;1pk;1qn;k
= np
n;1X
k=0
Ck
n;1pkq(n;1);k
= np
n;1X
k=0
b(k n;1 p)
= np: (6.39)
: Xi | i- (
0 q 1 p).
M Xi] = p 1+q 0 = p. , X = X1 +:::+Xn,
(6.26)
M X] = M
"
nX
i=1
Xi
#
=
nX
i=1
M Xi] =
nX
i=1
p = np:
. (6.29) -
, D Xi] = M X2
i ] ; M2 Xi]. Xi
0 1, M X2
i ] = M Xi] = p, , ,
D Xi] = p ; p2 = pq: (6.40)
(6.31):
D X] = D
"
nX
i=1
Xi
#
=
nX
i=1
D Xi] =
nX
i=1
pq = npq: (6.41)
6.2 , b(k n p) k
, k np, -
. , -
123. 123
:
b(k n p)
b(k;1 n p) = Ck
npkqn;k
Ck;1n pk;1qn;k+1
= n!(k ;1)!(n; k + 1)!p
k!(n; k)!n!q
= (n;k + 1)p
kq (6.42)
= 1 + (n+ 1)p; k
kq :
1, (n + 1)p ; k ,
b(k n p) > b(k ; 1 n p) k < (n + 1)p ( ),
b(k n p) < b(k ; 1 n p) k > (n + 1)p ( ).
(n + 1)p | , :
(n+1)p (n+1)p;1 = np;q.
, k, np;
q < k < (n + 1)p.
-
.
6.1. n > 0, 0 < p < 1, q = 1 ; p, 0 6 k 6 n.
b(k n p) 6 np
k
k nq
n ;k
n;k
:
. (6.10),
b(k n p) = Ck
npkqn;k
6 n
k
k n
n ;k
n;k
pkqn;k
= np
k
k nq
n; k
n;k
:
6.4-1 2 .
6.4-2 6 -
3 3 ( )?
6.4-3 , b(k n p) = b(n; k n q), q = 1 ; p.
6.4-4 ,
b(k n p) 1=p2 npq, q = 1 ;p.
124. 124 6
6.4-5? ,
n 1=n
1=e. ,
1=e.
6.4-6? n ,
. , , -
, Cn
2n=4n. ( .
,
n 2n .)
nX
k=0
(Ck
n)2 = Cn
2n:
6.4-7? , 0 6 k 6 n,
b(k n 1=2)6 2nH(k=n);n
H(x) | (6.13).
6.4-8? n . pi | -
i- , X -
. p > pi
i = 1 2 ::: n. ,
PfX < kg 6
k;1X
i=0
b(i n p)
k = 1 2 ::: n.
6.4-9? X,
n p1 ::: pn. X0 |
,
p0
1 ::: p0
n. p0
i > pi i. ,
PfX0 > kg > PfX > kg:
k = 0 ::: n
( : , -
: ,
-
. 3.3-6.)
6.5.
-
!
k
, k ( -
125. 125
k ). ,
(tails) . -
,
(np) .
b(k n p). ( -
).
6.2. X | n
p.
PfX > kg =
nX
i=k
b(i n p) 6 Ck
npk:
. (6.15):
Ck+i
n 6 Ck
nCi
n;k:
,
PfX > kg =
nX
i=k
b(i n p)
=
n;kX
i=0
b(k + i n p)
=
n;kX
i=0
Ck+i
n pk+i(1 ;p)n;(k+i)
6
n;kX
i=0
Ck
nCi
n;kpk+i(1; p)n;(k+i)
= Ck
npk
n;kX
i=0
Ci
n;kpi(1; p)(n;k);i
= Ck
npk
n;kX
i=0
b(i n; k p)
= Ck
npk
Pn;k
i=0 b(i n;k p) = 1 (6.38).
,
6.3. X | n
p.
PfX 6 kg =
kX
i=0
b(i n p) 6 Cn;k
n (1; p)n;k = Ck
n(1 ;p)n;k:
126. 126 6
: -
, , .
6.4. X | n
p q =
1 ;p.
PfX < kg =
k;1X
i=0
b(i n p)< kq
np; kb(k n p)
0 < k < np.
.
Pk;1
i=0 b(i n p) -
( . . 3.2). i = 1 2 ::: k -
(6.42)
b(i;1 n p)
b(i n p)
= iq
(n;i + 1)p < i
n ; i
q
p 6 k
n; k
q
p :
x = k
n ; k
q
p < 1
, b(i n p) 0 6 i 6 k
, x. -
( i = 0 i = k ; 1) b(k n p),
x + x2 + x3 + ::: = x=(1; x):
k;1X
i=0
b(i n p)< x
1 ;xb(k n p) = kq
np ;kb(k n p):
k 6 np=2 kq=(np ; k) 1,
b(k n p)
. n -
. p = 1=2 k = n=4. 6.4 ,
n=4
n=4 . ( , -
r 6 n=4 r
r .) 6.4
-
, 6.1.
:
127. 127
6.5. X | n
p q =
1 ;p.
PfX > kg =
nX
i=k+1
b(i n p) < (n ;k)p
k ; np b(k n p)
np < k < n.
: -
.
6.6. n -
i- pi ( -
qi 1;pi). X
, = M X]. r > -
PfX ; > rg 6 e
r
r
:
. > 0 e x -
x,
PfX ; > rg = Pfe (X; ) > e rg
-
(6.32) ( ):
PfX ; > rg 6 M e (X; )]e; r: (6.43)
M e (X; )] . -
Xi, 1 i- -
0 .
X =
nX
i=1
Xi
X ; =
nX
i=1
(Xi ;pi):
, Xi .
e (Xi;pi)] ( . 6.3-4), -
(6.27) -
:
M e (X; )] = M
"
nY
i=1
e (Xi;pi)
#
=
nY
i=1
M e (Xi;pi)]:
128. 128 6
:
M e (Xi;pi)] = e (1;pi)pi + e (0;pi)qi
= pie qi + qie; pi
6 pie + 1 (6.44)
6 exp(pie )
exp(x) : exp(x) = ex.
( , > 0, qi 6 1, e qi 6 e e; pi 6 1,
(2.7).) ,
M e (X; )] 6
nY
i=1
exp(pie ) = exp( e )
=
Pn
i=1 pi. , (6.43)
PfX ; > rg 6 exp( e ; r): (6.45)
= ln(r= ) ( . . 6.5-6),
PfX ; > rg 6 exp( eln(r= ) ;rln(r= ))
= exp(r; rln(r= )) = er
(r= )r = e
r
r
:
r > ,
r e ,
.]
6.6 -
. = M X] = np,
6.7. X | n
p.
PfX ;np > rg =
nX
k=dnp+re
b(k n p) 6 npe
r
r
:
6.5-1? : n -
, n
4n ?
129. 129
6.5-2? ,
k;1X
i=0
Ci
nai < (a + 1)n k
na; k(a + 1)b(k n a=(a+ 1))
a > 0 0 < k < n.
6.5-3? , 0 < k < np, 0 < p < 1 q = 1 ; p,
k;1X
i=0
piqn;i < kq
np;k
np
k
k nq
n ; k
n;k
:
6.5-4? , 6.6 -
Pf ; X > rg 6 (n; )e
r
r
6.7
Pfnp ; X > rg 6 nqe
r
r
:
6.5-5? n -
i- pi ( qi
1 ; pi). X
, = M X]. , r > 0
PfX ; > rg 6 e;r2=2n:
6.5-6? , = ln(r= )
(6.45) .
6.6.
-
. : -
k , -
.
6.6.1.
(birthday paradox) -
: ,
130. 130 6
?
,
, .
, 365 k -
.
, .
, -
1=365.
( ) ,
, -
2=365 . , k
,
1 ; 1
365 1 ; 2
365 ::: 1 ; k ; 1
365 :
, n | , Ai |
(i+ 1)-
i . Bi = A1
A2 ::: Ai;1 i
.
Bk = Ak;1 Bk;1, (6.20)
PfBkg = PfBk;1gPfAk;1jBk;1g: (6.46)
: PfB1g = 1.
PfAk;1jBk;1g (n;k+1)=n,
n n ; (k ; 1) ( -
).
PfBkg = PfB1gPfA1jB1gPfA2jB2g PfAk;1jBk;1g
= 1 n; 1
n
n; 2
n ::: n; k + 1
n
= 1 1 ; 1
n 1 ; 2
n t::: 1 ; k ; 1
n
1 + x 6 ex (2.7) ,
PfBkg 6 e;1=ne;2=ne;(k;1)=n
= e;(1+2+3+:::+(k;1))=n
= e;k(k;1)=2n
6 1=2
;k(k ;1)=2n 6 ln(1=2). , k -
, 1=2 k(k;1) > 2nln2.
131. 131
, k > (1 +
p
1+ (8ln2)n)=2.
n = 365, k > 23. ,
23 , 1=2 -
. , -
669 , 31
.
, -
. (i j), -
, Xij
Xij =
(
1 i j ,
0 .
, -
, 1=n, -
(6.23)
M Xij] = 1 (1=n) + 0 (1; 1=n) = 1=n
i 6= k.
Xij 1 6 i < j 6 k -
,
C2
k = k(k ; 1)=2, k(k ; 1)=2n. -p
2n ,
1.
, n = 365 k = 28 , -
, (28 27)=(2 365) 1 0356.
38 .
, : (1) k
X =
P
Xij > 0 1=2, (2) k
X 1. -
( , PfX > 0g >
1=2, M X] > 1=2, X -
). ,
(
pn).
6.6.2.
b , 1 b.
:
. ,
1=b ( |
132. 132 6
). ,
.
? , -
, -
b(k n 1=b). n ,
n=b.
,
? -
1=b, 1=(1=b) = b.
, -
? -
. , , -
b. ni , -
, ,
i ; 1 i. ( , -
, , | ,
n1 = 1, n2 = 3.) -
n1 +n2 +:::+nb.
. -
i- , i;1 b
(b ; i + 1)=b. -
ni
b=(b;i+1). i
b(1=b+1=(b;1)+:::+1=2+1) = b(lnb+O(1)). ( . -
(3.5) .)
, blnb , -
.
6.6.3.
n . -
? -
, | (lgn).
,
O(lgn). Aik ,
k , i- . ,
PfAikg = 1=2k: (6.47)
k = 2dlgne k -
1=n2, ( i)
n, k ( - )
1=n.
:
n ( 1;1=n) -
2dlgne, d2lgne+n (1=n) = O(lgn).
134. 134 6
?
6.6-5? n n , ,
.
? ,
?
6.6-6? -
, , n
lgn; 2lglgn 1 ;1=n.
6-1
n
b .
. , ,
. , bn
.
. , -
. ,
(b+ n ; 1)!=(b; 1)! . ( : -
n b;1
.)
. , ,
. ,
Cn
b+n;1. ( : ,
( ).)
. , -
, Cn
b .
. ,
,
Cb;1
n;1.
6-2
-
A 1::n].
1 max ;1
2 for i 1 to n
3 do . A i] max.
4 if A i] > max
5 then max A i]
, -
135. 6 135
5. , A -
( -
).
. x i , -
?
. A i]
i, 5?
. 5
i?
. si | , 1 0
, 5 i- .
M si]?
. s = s1+s2+ +sn |
5 . , M s] = (lgn).
6-3
-
. n
.
, -
, .
.
k , -
. ,
k, . , -
. ,
-
( 1=e), k n=e.
6-4
t- 2t ; 1.
(probabilistic counting,
R. Morris) ,
.
-
ni ( i 0 2t;1). :
t- i, , -
( Increment)
ni. , n0 = 0.
Increment , -
i, . , i
1 1=(ni+1;ni), -
. ( i = 2t ; 1, .)
: i
ni+1 ;ni .
136. 136 6
ni = i i > 0, .
, , , ni =
2i;1 i > 0 ni = Fi (i- , . . 2.2).
, n2t;1 , -
.
. ,
n Increment,
n.
. ,
n Increment, -
n0 n1 :::.
ni = 100i.
-
(B.Pascal) (P.de Fermat), -
1654 , (C.Huygens, 1657). -
(J.Bernoulli, 1713) (A.De Moivre, 1730). -
(P.S.de Laplace), (S.-D.Poisson) (C.F.Gauss).
. .
. . ( ). 1933 . . -
. -
40] 99]. -
(P.Erdos).
: 121], 140] ( -
) 28],
41], 57], 66], 171] ( -
) 30], 100], -
179] ( ).
145. 145
. 7.2 Heapify(A 2) heap-size A] = 10. ( ) -
. i = 2 .
, A 2] A 4]. ( )
4. -
Heapify(A 4) 4
A 4] $ A 9] ( ).
, Heapify(A 9) .
Heapify(A i)
1 l Left(i)
2 r Right(i)
3 if l 6 heap-size A] A l] > A i]
4 then largest l
5 else largest i
6 if r 6 heap-size A] A r] > A largest]
7 then largest r
8 if largest 6= i
9 then A i] $ A largest]
10 Heapify(A largest)
Heapify . 7.2. 3{7
largest
A i], A Left(i)] A Right(i)]. largest = i, A i]
, .
A i] A largest] ( -
(7.1) i, ,
149. 149
7.4.
.
Build-Heap, -
. : -
(A 1]).
c A n], 1 -
( -
Left(1) Right(1)
, Heapify).
-
. ,
.
Heapsort(A)
1 Build-Heap(A)
2 for i length A] downto 2
3 do A 1] $ A i]
4 heap-size A] heap-size A] ;1
5 Heapify(A 1)
. 7.4.
for ( 2).
Heapsort O(nlgn). -
, ( ) O(n),
n ;1 for O(lgn).
7.4-1 , . 7.4,
Heapsort A = h5 13 2 25 7 17 20 8 4i.
7.4-2 A -
. ?
?
7.4-3 , Heapsort -
(nlgn).
7.5.
| , ( . 8) -
. -
150. 150 7
. 7.4 Heapsort. -
Heapify.
.
.
|
.
(priority queue) | S,
. -
S hkey i, key | ,
(key).
| -
,
.
:
Insert(S x): x S
151. 151
Maximum(S):
Extract-Max(S): .
, , -
. -
, -
( Extract-Max). -
Insert.
| -
(event-driven simulation).
, , -
. ,
, .
Extract-Min (
), | Insert.
. -
.
, Maximum
(1). ,
, :
Heap-Extract-Max(A)
1 if heap-size A] < 1
2 then :
3 max A 1]
4 A 1] A heap-size A]]
5 heap-size A] heap-size A]; 1
6 Heapify(A 1)
7 return max
O(lgn) ( Heapify
).
,
( ), :
Heap-Insert(A key)
1 heap-size A] heap-size A]+ 1
2 i heap-size A]
3 while i > 1 A Parent(i)] < key
4 do A i] A Parent(i)]
5 i Parent(i)
6 A i] key
Heap-Insert . 7.5.
O(lgn), -
lgn ( i
152. 152 7
. 7.5 Heap-Insert.
15 ( ).
while ).
, n
O(lgn).
7.5-1 , . 7.5,
Heap-Insert(A 3) A = h15 13 9 5 12 8 7 4 0 6 2 1i.
7.5-2 , Heap-
Extract-Max .
7.5-3 , ( rst-in,
rst-out) . ( .
. 11.1).
7.5-4 Heap-Increase-Key(A i k) ( -
), A i] k,
k (A i] max(A i] k))
. | O(lgn).
7.5-5 Heap-Delete(A i) | -
i . O(lgn).
153. 7 153
7.5-6 ,
O(nlgk) k -
( n | ).
( : .)
7-1
,
Heap-Insert. -
:
Build-Heap0(A)
1 heap-size A] 1
2 for i 2 to length A]
3 do Heap-Insert(A A i])
. Build-Heap Build-Heap0 -
. ?
( .)
. , Build-Heap0 -
(nlgn) ( n | ).
7-2 d-
d- (d-ary heap), -
d .
. , Par-
ent, Left Right?
. d- n n
d?
. Extract-Max. -
( n d)?
. Insert. ?
. Heap-Increase-Key ( . 7.5-4). -
?
202]
.
Build-Heap 69].
154. 8
-
. n -
(n2),
: -
(nlgn), nlgn
. ,
-
.
8.1 -
.
8.2 ,
8.4. 8.3 -
, .
( -
) O(n2),
O(nlgn). ( , -
, ,
O(nlogn).) -
8.4,
.
8.1.
(quicksort), ,
( . . 1.3.1). -
A p::r] :
A ,
A p] ::: A q]
A q+1] ::: A r], q | p 6 q < r.
(partition).
A p::q] A q + 1::r].
155. 155
A p::r] .
, Quicksort
:
Quicksort(A p r)
1 if p < r
2 then q Partition(A p r)
3 Quicksort(A p q)
4 Quicksort(A q + 1 r)
Quicksort(A 1 length A]).
| Partition, -
A p::r] :
Partition(A p r)
1 x A p]
2 i p;1
3 j r + 1
4 while true
5 do repeat j j ;1
6 until A j] 6 x
7 repeat i i+ 1
8 until A i] > x
9 if i < j
10 then A i] $ A j]
11 else return j
Partition . 8.1. x =
A p] A p::q] -
, x, A q+1::r] | ,
x. , ,
x, (A p::i]), ,
x | (A j::r]). -
: i = p ; 1, j = r + 1.
while ( 5{8)
( ). -
A i] > x > A j]. A i]
A j] ,
.
i > j.
A p] ::: A j] A j + 1] ::: A r] -
156. 156 8
. 8.1 Partition.
, . ( ) -
, .
x = A p] = 5 . ( ) -
while ( 4{8). ( ) A i] A j] ( -
10). ( ) while. ( ) ( -
) while. i > j,
q = j. A j] ( )
, x = 5, A j] , x = 5.
. j.
,
. , , i j
p::r] . -
: , -
A p], , , A r]. ,
A r] | , -
i = j = r, q = j
| q < r, Quicksort
. Partition -
8-1.
Partition (n), n =
r ;p+ 1 ( . . 8.1-3).
8.1-1 , . 8.1,
Partition A = h13 19 9 5 12 8 7 4 11 2 6 21i.
8.1-2 A p::r] .
Partition?
8.1-3 , ,
Partition (n).
169. 8 169
. i j
p::r].
. j
r ( . . ).
. -
A p::j] A j + 1::r].
8-2
Partition, ,
. (N. Lomuto). -
A p::i] A i + 1::j],
x = A r], | x.
Lomuto-Partition(A p r)
1 x A r]
2 i p ;1
3 for j p to r
4 do if A j] 6 x
5 then i i+ 1
6 A i] $ A j]
7 if i < r
8 then return i
9 else return i; 1
. , Lomuto-Partition -
.
. Partition Lomuto-Partition -
? ( -
.)
. , Lomuto-Partition, -
Partition, (n), n |
.
. Quicksort Partition
Lomuto-Partition.
, ?
. Randomized-Lomuto-Partition,
A r] -
Lomuto-Partition. ,
, Randomized-Lomuto-
Partition q, , -
Randomized-Partition p + r ;q.
8-3
-
:
170. 170 8
Stooge-Sort(A i j)
1 if A i] > A j]
2 then A i] $ A j]
3 if i+ 1 > j
4 then return
5 k b(j ;i+ 1)=3c . .
6 Stooge-Sort(A i j ;k) . .
7 Stooge-Sort(A i+ k j) . .
8 Stooge-Sort(A i j ;k) . .
. , Stooge-Sort -
.
.
Stooge-Sort
.
. Stooge-Sort
( -
, , ).
?
8-4
Quicksort (
). -
, (
,
-
tail recursion):
Quicksort0(A p r)
1 while p < r
2 do . .
3 q Partition(A p r)
4 Quicksort0(A p q)
5 p q + 1
. , Quicksort0 -
.
, -
, -
. , -
, -
.
O(1), -
(stack depth) .
. , Quicksort0
(n).
171. 8 171
. Quicksort0 ,
(lgn) ( (nlgn)
).
8-5
Randomized-Quicksort ,
.
|
(median-of-3 method): -
.
,
A 1::n] n > 3. A0 1::n] -
( ).
pi = Pfx = A0 i]g, x | ,
.
. pi ( i = 2 3 ::: n ; 1) i n
( , p1 = pn = 0).
. (A0 b(n +
1)=2c]) , ? -
n ! 1?
. x -
, x = A0 i], n=3 6 i 6 2n=3.
, -
? ( : .)
. ,
(nlgn) (
nlgn).
98]. -
174] -
.
165].
173. 173
. 9.1 , -
. -
3! = 6, 6 .
: . 9.1
(decision tree),
1.1.
n a1 ::: an. -
ai : aj, ,
(1 6 i j 6 n). -
h (1) (2) ::: (n)i, | -
n ( . . 6.1 ).
-
,
.
,
. .
( ) .
ai : aj. , ai 6 aj,
. ,
, ,
a (1) a (2) ::: a (n),
, .
n!
( -
).
|
.
.
174. 174 9
9.1. , -
n , (nlgn).
.
n ,
n!. h
2h , n! 6 2h. -
2 n! > (n=e)n,
(2.11), ,
h > nlgn ;nlge = (nlgn)
.
9.2. -
.
. O(nlgn) -
, .
9.1-1 -
?
9.1-2 lg(n!) =Pn
k=1 lgk , . 3.2.
9.1-3 , , -
,
n! n.
, 1=2 1=n?
1=2n?
9.1-4 ,
: - ai : aj
,
, : ai < aj,
ai = aj ai > aj. ,
n ,
(nlgn). , .
9.1-5 , -
n 2n;1 -
.
9.1-6 n ,
, k. -
. . (
175. 175
). -
, (nlgk) -
. ( : -
n=k k.)
9.2.
(counting sort) ,
n |
( -
k). k = O(n), -
O(n).
, x
, -
x, x
( , , 17
x, x
18). -
,
, -
.
C 1::k] k . -
A 1::n], -
B 1::n].
Counting-Sort(A B k)
1 for i 1 to k
2 do C i] 0
3 for j 1 to length A]
4 do C A j]] C A j]]+ 1
5 . C i] , i.
6 for i 2 to k
7 do C i] C i]+ C i ;1]
8 . C i] , i
9 for j length A] downto 1
10 do B C A j]]] A j]
11 C A j]] C A j]];1
. 9.2. ( 1{2) -
C i] A, i ( -
3{4), ,
C 1] C 2] ::: C k], | , i
( 6{7). , 9{11 -
176. 176 9
. 9.2 Counting-Sort, A 1::8],
, k = 6. ( ) A
C 3{4. ( )
C 6{7. ( { ) B -
C , 9{11.
,
. ( ) B .
A B. ,
n , -
A j] C A j]],
A A j] A -
, A j]
B C A j]] ( 11),
, A j],
.
.
1{2 6{7 O(k), 3{4
10{11 | O(n), , ,
O(k + n). k = O(n), O(n).
. 9.1
| ,
, .
,
(it is stable). ,
, -
, .
,
, ,
. , ,
, ht xi, t | 1 k,
x | , ,
.
177. 177
, -
.
.
, .
9.2-1 . 9.2.,
Counting-Sort k = 7 A = h7 1 3 1 2 4 5 7 2 4 3i.
9.2-2 , Counting-Sort -
.
9.2-3 9 Counting-Sort :
9 for j 1 to length A]
, . -
?
9.2-4
-
. Counting-Sort ,
, B
( A C). ( : A
-
?).
9.2-5 n 1 k. , -
,
O(1)
a b? .
O(n+ k).
9.3.
(radix sort) -
(
). -
. 80
12 . -
, -
( 80 ),
0{9 0{9 -
.
,
181. 181
. 9.4 Bucket-Sort. ( ) A 1::10].
( ) B 0::9] 5. i -
, i.
, B 0] ::: B 9].
. 11.2.
Bucket-Sort(A)
1 n length A]
2 for i 1 to n
3 do A i] B bnA i]c]
4 for i 0 to n; 1
5 do B i] ( )
6 B 0] B 1] ::: B n;1] ( )
. 9.4
10 .
, -
, A i] A j].
, ,
-
,
.
.
, , ( ) O(n).
O(n). ,
-
.
B i] ni (ni | ).
,
-
i O(M n2
i]),
182. 182 9
n;1X
i=0
O(M n2
i]) = O
n;1X
i=0
M n2
i]
!
: (9.1)
ni. -
, -
, ,
i, 1=n. ,
. 6.6.2 : n - , n - ,
p =
1=n. ni : -
, ni = k, Ck
npk(1 ; p)n;k,
M ni] = np = 1, D ni] = np(1;p) = 1;1=n.
(6.30) :
M n2
i ] = D ni]+ M2 ni] = 2 ; 1
n = (1):
(9.1), , -
O(n),
-
.
9.4-1 . 9.4, , -
Bucket-Sort A = h0:79 0:13 0:16 0:64 0:39
0:20 0:89 0:53 0:71 0:42i.
9.4-2 -
? ,
O(nlgn).
9.4-3? n
(xi yi), 1
( ,
- ). -
, -
(n).
( : , -
, ).
9.4-4? X | .
(probability distribution function) P(x) =
183. 9 183
PfX 6 xg. , -
n , -
P. P -
O(1). -
,
n?
9-1
,
n
, , (nlgn). ,
A,
TA | . -
, -
.
. TA ,
. , n! -
1=n!, .
. D(T) -
T ( , -
, | -
). T | k > 1 ,
LT RT . ,
D(T) = D(LT)+ D(RT)+ k.
. d(m) | D(T)
T m . , d(k) = min16i6k;1fd(i)+
d(k;i)+kg. ( : LT 1 k ;1
.)
. , k ilgi + (k ;
i)lg(k ; i) 1 k ; 1
i = k=2. , d(k) = (klgk).
. , D(TA) = (n!lg(n!)), ,
n TA,
, (nlgn).
B,
. ,
: -
.
Random(1 r) r , -
. (
r .)
. B.
189. 189
Randomized-Select(A p r i)
1 if p = r
2 then return A p]
3 q Randomized-Partition(A p r)
4 k q ; p + 1
5 if i 6 k
6 then return Randomized-Select(A p q i)
7 else return Randomized-Select(A q + 1 r i;k)
Randomized-Partition 3
A p::r] A p::q] A q +
1::r], A p::q]
A q+1::r]. 4
A p::q]. , -
i- A p::r]. i 6 k,
( A p::q]),
( ) Randomized-
Select 6. i > k, k
(A p::q]) ,
(i; k)- A q + 1::r] ( 7).
Randomized-Select ( -
Randomized-Partition)
(n2), : ,
, -
. -
,
.
. -
n -
( ). T(n) | -
. 8.4,
Randomized-Partition 1
2=n, i > 1 -
1=n i 2 n ; 1. , T(n)
n ( , T(n)
T0(n) = max16i6n T(i) T0). -
, , i-
, -
190. 190 10
. :
T(n) 6 1
n T(max(1 n; 1))+
n;1X
k=1
T(max(k n;k))
!
+ O(n)
6 1
n
0
@T(n;1) + 2
n;1X
k=dn=2e
T(k)
1
A + O(n)
= 2
n
n;1X
k=dn=2e
T(k) + O(n)
(
T(n; 1)=n
, T(n;1) = O(n2),
T(n; 1)=n O(n)).
, T(n) 6 cn, (
c, ). ,
T(j) 6 cj j < n. ,
, ,
T(n) 6 2
n
n;1X
k=dn=2e
ck + O(n)
6 2c
n
n
2
n=2 + 1 + n;1
2
+ O(n)
= 3cn
4
+ O(n) 6 cn
c , c=4 ,
O(n).
, , -
, .
10.2-1 Randomized-Select, -
.
10.2-2 , Randomized-
Select A =
h3 2 9 0 7 5 4 8 6 1i. ,
.
10.2-3 Randomized-Select -
, A ( ,
Randomized-Partition A p::r]
204. 204 11
. 11.1 S. -
. ( ) S 4 , | 9.
( ) Push(S 17) Push(S 3). ( )
, Pop(S) 3 (
). 3 - S,
| 17.
S 1] | ( ) S top S]] | -
, .
top S] = 0, (is empty). top S] = n,
(over ow), -
n.
|
| - ( - ?), -
under ow.
.
( , ,
) :
Stack-Empty(S)
1 if top S] = 0
2 then return true
3 else return false
Push(S x)
1 top S] top S]+ 1
2 S top S]] x
Pop(S)
1 if Stack-Empty(S)
2 then error under ow"
3 else top S] top S];1
4 return S top S]+ 1]
Push Pop . 11.1.
O(1).
205. 205
Enqueue, -
Dequeue. ( ,
Dequeue, .)
, : |
. ( , -
, - .)
, (head) (tail).
, , ,
, -
, , ,
.
. 11.2 , , -
n ; 1 , Q 1::n].
head Q] | , tail Q] | -
, -
. -
, head Q], head Q] + 1, ::: ,
tail Q];1 ( , : n -
1). head Q] = tail Q], .
head Q] = tail Q] = 1. ,
(under ow) head Q] = tail Q]+1,
, -
(over ow).
Enqueue Dequeue -
( 11.1-4
).
Enqueue(Q x)
1 Q tail Q]] x
2 if tail Q] = length Q]
3 then tail Q] 1
4 else tail Q] tail Q]+ 1
Dequeue(Q)
1 x Q head Q]]
2 if head Q] = length Q]
3 then head Q] 1
4 else head Q] head Q]+ 1
5 return x
Enqueue Dequeue . 11.2.
208. 208 11
. 11.3 ( ) L 1 4 9 16. -
| -
( ).
next prev nil
( ) head L] . ( ) -
List-Insert(L x), key x] = 25,
25 , next
| 9. ( )
List-Delete(L x), x |
4.
.
List-Search(L k) L (
) , k.
, , nil,
. , , L |
. 11.3 , List-Search(L 4)
, List-Search(L 7) nil.
List-Search(L k)
1 x head L]
2 while x 6= nil and key x] 6= k
3 do x next x]
4 return x
n (
) (n) .
List-Insert x L,
( . 11.3 ).
209. 209
List-Insert(L x)
1 next x] head L]
2 if head L] 6= nil
3 then prev head L]] x
4 head L] x
5 prev x] nil
List-Insert O(1) (
).
List-Delete x L, -
. -
x. x,
-
List-Search.
List-Delete(L x)
1 if prev x] 6= nil
2 then next prev x]] next x]
3 else head L] next x]
4 if next x] 6= nil
5 then prev next x]] prev x]
. 11.3 .
List-Delete O(1) -
,
(n).
, -
List-Delete :
List-Delete0(L x)
1 next prev x]] next x]
2 prev next x]] prev x]
, L
nil L], next prev
. (
sentinel | ) . -
nil. -
: next nil L]] prev nil L]]
, prev next
210. 210 11
. 11.4 L, nil L] ( -
). head L] next nil L]]. ( ) .
( ) . 11.3 ( 9 | , 1 | ). ( )
List-Insert0(L x), key x] = 25. ( )
1. 4.
nil L] ( . 11.4).
next nil L]] | , head L]
. L , -
nil L] | .
List-Search nil nil L]
head L] next nil L]]:
List-Search0(L k)
1 x next nil L]]
2 while x 6= nil L] and key x] 6= k
3 do x next x]
4 return x
List-Delete0, -
. , :
List-Insert0(L x)
1 next x] next nil L]]
2 prev next nil L]]] x
3 next nil L]] x
4 prev x] nil L]
List-Insert0 List-Delete0
. 11.4.
, -
. (
, ),
.
. -
, -