ࡱ>   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry PageMakerL  JJ3::+Q1'MP2Щ1Y88 88 hL  5 kZ 4&@ } @ Pd 0  @@ L  & ^U N & &4   h $7. MSB  B@ & >  ; G3Ld 26 kZ 3L  1 @ @  @   @} .+@RTF"C:\INSTALL\NEW\cd-pasico\BOOKS\SHEN\druk\ 4.rtf6B1'iO1'P1')1  9߿ A9߿ AEPSON Stylus COLOR 300EPSON Stylus COLOR 300LPT1:@@xGMMd(xKdddContents^tIndex ,^>;^>^=.^> , C:\PM65\RSRC\USENGLSHxA99ddp-p- db9߿ ..--__ +p0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-- ,p0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-. -p0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-/ .p0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-0 wp0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-1 xp0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-2 yp0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-3 zp0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-4!/01234!56789:!;<=>?@!ABCDEF!GHIJKL!MNOPQR!STUVWX!YZ[\]^!_`abcd!efghij!klmnop!qrstuv!!-Times New Roman$Arial Cyr"$Arial"$(xKdddxGMMdBody text(xKddddGMMdCaption(xKdddxGMMdHanging indentU(xKddd,GMMdHeadlineU(xKdddGMMdSubhead 1U(xKdddxGMMdSubhead 2 (xKdddxGMMdNormal NoneRegistrationPaperBlackRedGreenBlueCyanMagentaYellowdDAdobe Compatibility CMSAdobe Compatibility CMSPageMaker 5.0 RGB DAdobe Compatibility CMS Adobe Compatibility CMSPageMaker 5.0 CMYKDefaultETIsBLDB'Document Masterp0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-Document Masterp0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)arp-p-F?81-8-Y  B  xY3xGMMd(xKdddgW 7--6%6q q--7%77 7--8$8f q--9$97# #.Y  B  xY4xGMMd(xKddd/Y  B  xY5xGMMd(xKddd0Y  B  xY6xGMMd(xKddd1Y  B  xY7xGMMd(xKddd2Y  B  xY8xGMMd(xKddd3Y  B  xY9xGMMd(xKddd4Y  B  Y10xGMMd(xKddd4Y  R  Y11xGMMd(xKddd3Y   B  Y12xGMMd(xKddd2Y@@!B -YB  Y 13xGMMd(xKddd1Y  "B  Y14xGMMd(xKddd0Y  #B  Y15xGMMd(xKdddS= 7--:%:f" "q--A%Af2 q--;%;7R!@!7--@$@7 7--<%<U   q--?%?U2 q--=%=Jtj 7-->%>3-Y%%63.Y%%72/Ys%$8U 20Ys%$931Y%%:32Y%%;W33Y%%<34Y%%=/ 34Y%%>33Y%%?22Y$$@21Y%%AB Y@Y"@ Y@YA@`YA@$Y@hYA@\YA@Y!@pY@YA@`YA@$YA@<YA@,Y @Y@Y @ Y?@hY@0Y@$Y-@ Y@Y@pY @ Y@Y @4Y @Y,@ Y#@Y@dY@Y@YA@8Y@@|Y@Y@Y@Y@Y#@ Y@0Y:@Y@<Y@Y=@ Y/@ Y"@Y@HY @Y@Y@&Y@YA@lY>@YA@Y7@Y@Y%@ Y@YA@YA@`Y*@ Y@Y@h Y@Y'@4 YA@YA@YA@YA@ YA@8Y'@ YA@YA@(Y#@ Y@Y@Y&@x Y@Y@@@Y@HY@Y@YA@xYA@YA@YA@YA@Y @HY4@$ Y%@<Y5@ Y%@<Y$@Y$@Y$@@Y%@Y5@8 Y%@Y@YA@Y@Y@Y@Y@Y.@ Y5@Y@Y @<Y@Y9@Y@ Y @Y@Y@YA@DYA@TYA@YA@Y@|Y@Y@,Y@(Y@Y@ Y@,Y@(Y@Y@YA@Y@Y-@T YA@Y;@|Y5@Y@Y@Y(@8 Y/@, Y7@ Y@|Y@ Y@Y@Y-@ Y @Y@|Y@xY@hY @Y@Y@Y@YA@tY?@|YA@Y;@XY@Y%@ YA@pYA@Y!@ Y@Y@Y@(Y@LY@xY@Y@Y@Y@YA@XYA@YA@YA@,YA@DY @Y8@YA@Y@ YA@YA@YA@@YA@YA@YA@tYA@4YA@TYA@8Y"@4 YA@TYA@YA@DYA@pYA@8Y@YA@YA@4YA@4YA@YA@HY@YA@YA@ YA@YA@LY6@YA@4YA@hY&@ YA@YA@YA@0YA@Y%@ YA@`YA@YA@YA@YA@HYA@Y/@Y@Y@8Y@Y@Y&@0 YA@Y>@HY@0Y&@ Y@<Y:@Y3@lY4@Y@Y@YA@Y:@Y@Y8@Y @Y<@Y0@ Y2@ Y8@ Y$@tY@Y@Y"@Y@Y @Y@&Y@Y@YA@YA@@YA@YA@HYA@YA@XYA@ Y@\ Y@Y?@DY$@ Y3@Y5@<Y1@ Y@Y@`Y@YA@YA@YA@YA@\YA@Y3@XY@YA@Y7@8Y@Y @ Y @Y&@ Y@Y9@Y7@Y @Y@Y@Y@@HY@@,Y @DY@Y@Y@Y'@ Y@xY @Y@ Y@Y@Y@&Y @Y$@Y@Y @Y @0Y5@ Y6@@ Y<@Y@Y@XY@\Y@`Y@Y @Y @4Y @Y@Y @Y @Y@Y@Y@Y @Y@Y@pY@Y@Y @Y@Y@Y@\Y@YA@YA@Y@Y@YA@YA@YA@Y@@(Y@YA@`YA@YA@XYA@4YA@YA@YA@PYA@Y)@ Y@&Y@YA@YA@@YA@ Y@dY@Y!@P Y@YA@YA@Y@Y@YA@LY5@Y@YA@YA@YA@Y@Y@YA@YA@YA@Y@@@YA@0YA@Y@@Y@YA@YA@TYA@Y)@ Y@YA@YA@dY@DY@Y>@Y@YA@YA@(YA@Y,@p Y@YA@,YA@tYA@Y<@hY@YA@Y@&YA@TYA@pYA@Y@4Y@Y@Y<@Y@YA@YA@YA@\YA@YA@Y@Y@YA@YA@<YA@Y@Y@YA@YA@HY@Y@YA@PYA@TYA@ YA@DYA@8YA@YA@YA@PYA@Y9@Y@YA@YA@4YA@(Y @xY@YA@dYA@YA@HYA@dYA@Y@0Y@YA@YA@ Y!@ Y@&Y@YA@\YA@$YA@Y!@ Y@YA@Y;@HY@YD@YA@Y@,Y@YA@PYA@0Y@\Y@YA@xY @\ Y@YA@YA@YA@Y<@Y@YA@YA@YA@TYA@YA@ Y8@Y@YA@YA@Y@Y@YA@YA@lYA@Y.@ YA@ YA@YA@YA@YA@Y @ Y@Y)@ Y@YA@hY@&YA@Y@pY@YA@YA@XYA@Y @Y@YA@YA@|YA@lY @Y@YA@YA@lYA@YA@YA@YA@Y@Y@YA@YA@$YA@hYA@YA@YA@Y@Y@YA@YA@Y=@Y@YA@YA@Y@ Y@Y8@Y@YA@YA@YA@XYA@(YA@Y5@Y@YA@pY&@ Y@Y@%YA@YA@Y@tY@YA@YA@YA@YA@|Y@Y@Y:@,Y?@hY;@Y@Y@DY@Y@Y @Y@Y@hY@lY:@Y@Y1@Y@Y@Y?@$Y @ Y@Y @ Y@Y:@Y)@< Y@YA@Y@Y@YA@YA@YA@YA@YA@YA@(Y@YA@YA@YA@Y@Y@Y@Y @ l 4. . 4.1. . 4.1.1. a[1], ..., a[n] - . b[1], ..., b[n], , b[1] <= ... <= b[n]. . a[1]...a[n] . - , b[1]...b[n] , a[1]...a[n]. . , a[1]..a[n] b[1]..b[n] x. - a b - , x. ... k := 0; {k x } while k <> n do begin | s := k + 1; t := k + 1; | {x[s] - x[k+1]...x[t] } | while t<>n do begin | | t := t + 1; | | if x[t] < x[s] then begin | | | s := t; | | end; | end; | {x[s] - x[k+1]..x[n] } | ... x[s] x[k+1]; | k := k + 1; end; 4.1.2. , { k : x[1] <= ... <= x[k]} . k:=1 { k } while k <> n do begin | {k+1- , | } | t := k+1; | {x[1] <= ... <= x[t-1] x[t-1], x[t] <= ... <= x[k+1] } | while (t > 1) and (x[t] < x[t-1]) do begin | | ... x[t-1] x[t]; | | t := t - 1; | end; end; . : (t > 1) x[t] < x[t-1] x[0]. , - n*n. . 4.2. n log n. 4.2.1. , - n log n, C*n*log(n) C n. . 1. ( ). k - . x[1]..x[n] k. ( - x[1]..x[k], x[k+1]..x[2k] ..) , n k. k-, . 1-. k- n<=k, . , k- 2k- ( ). - : k:=1; { x k-} while k < n do begin | .. k- 2k-; | k := 2 * k; end; , k . (p,q,r: integer) p <=q <= r x[p+1]..x[q] x[q+1]..x[r] x[p+1]..x[r] ( x). p q r |||- | | | |||- | | V ||- | | ||- k- 2k- : t:=0; {t 2k t = n, x[1]..x[t] 2k-; x } while t + k < n do begin | p := t; | q := t+k; | ...r := min (t+2*k, n); { min } | (p,q,r); | t := r; end; - b. p0 q0 - , , s0 - b . - : b[s0+1]:=x[p0+1]; p0:=p0+1; s0:=s0+1; b[s0+1]:=x[q0+1]; q0:=q0+1; s0:=s0+1; ( ) - : (1) (p0 < q); (2) (q0 = r) , [(q0 < r) (x[p0+1] <= x[q0+1])]. . , p0 := p; q0 := q; s0 := p; while (p0 <> q) or (q0 <> r) do begin | if (p0 < q) and ((q0 = r) or ((q0 < r) and | | (x[p0+1] <= x[q0+1]))) then begin | | b [s0+1] := x [p0+1]; | | p0 := p0+1; | | s0 := s0+1; | end else begin | | {(q0 < r) and ((p0 = q) or ((p0= x[q0+1])))} | | b [s0+1] := x [q0+1]; | | q0 := q0 + 1; | | s0 := s0 + 1; | end; end; ( , ; .) : - . 2 ( ). - , , , - - : ............. o o o o \/ \/ o o \ / o , : ( ). , , . . : = - ( ) - . . . , : , . , ( ). , n - n. , , . , . - 1, 2, ...: n 2*n 2*n+1. , , - , ( ). - , . x[1]..x[n] - , . 1 n; x[i] , i. . k. , x[1]..x[n] : x[1]..x[k] , x[k+1] .. x[n] - , . , . . - 1 k. s 2s 2s+1. k, ; . 2s=k, - s (2s). s 1..k s: s (, - .. - , 1..k). s , - s-; s- - , . ( , .) : k:= n ... 1- ; {x[1],..,x[k] <= x[k+1] <= ... <= x[n]; 1- , , x[1] - x[1]..x[k]} while k <> 1 do begin | ... x[1] x[k]; | k := k - 1; | {x[1]..x[k-1] <= x[k] <=...<= x[n]; 1- - | , , , } | ... 1- end; s- . : {s- , , , } t := s; {s- , , , t} while ((2*t+1 <= k) and (x[2*t+1] > x[t])) or | ((2*t <= k) and (x[2*t] > x[t])) do begin | if (2*t+1 <= k) and (x[2*t+1] >= x[2*t]) then begin | | ... x[t] x[2*t+1]; | | t := 2*t + 1; | end else begin | | ... x[t] x[2*t]; | | t := 2*t; | end; end; , . s- , t, . t. - , . , t- t . ( t , .) - : while t, do begin | if then begin | | t ; t:= | end else begin { - } | | t ; t:= | end end t ( t-). , - . s- - , ( ), . , 1- : k := n; u := n; { s- s>u } while u<>0 do begin | {u- , } | ... u- ; | u:=u-1; end; (- , n - , x arr = array [1..n] of integer). procedure sort (var x: arr); | var u, k: integer; | procedure exchange(i, j: integer); | | var tmp: integer; | | begin | | tmp := x[i]; | | x[i] := x[j]; | | x[j] := tmp; | end; | procedure restore (s: integer); | | var t: integer; | | begin | | t:=s; | | while ((2*t+1 <= k) and (x[2*t+1] > x[t]) ) or | | | ((2*t <= k) and (x[2*t] > x[t])) do begin | | | if (2*t+1 <= k) and (x[2*t+1] >= x[2*t]) then begin | | | | exchange (t, 2*t+1); | | | | t := 2*t+1; | | | end else begin | | | | exchange (t, 2*t); | | | | t := 2*t; | | | end; | | end; | end; begin | k:=n; | u:=n; | while u <> 0 do begin | | restore (u); | | u := u - 1; | end; | while k <> 1 do begin | | exchange (1, k); | | k := k - 1; | | restore (1); | end; end; . , , - . (. 6 ( ) .) , , . , (, ), . : - , b, - : b, b b. ( .) - : . - ; - , C*n*log n. - . ( , .) , , C*n*log n (. 12), C - . 4.3. . 4.3.1. . n*log n. ( .) . , , . 4.3.2. n [a[i], b[i]] (i=1..n). k, , - k ( ). - n*log n. . - ( , - ). - , . 1, - . , : - ( ), - ( ). 4.3.3. n . (n-1)- - , . ( .) n*log n. . x-, x- - y-. - . 4.3.4. , . . (.. x-) . , - . 4.3.5. n . - , . ( , , .) n*log n. . - , - . , - , . ( , . 6 .) 4.4. . n , , - . ( : (i,j:1..n):boolean.) , ( ). , - , , - . . 4.4.1. , n log (n!). ( 2, n! - 1..n.) . d. n! - ( ); d . , d. n! - d . - ( ). , 2 d n! - . - , , , d (2 d) . , , - , C*n*log n , . , , . - . 4.4.2. a[1]..a[n], m. - ; m+n. . 0 m , . , - . , - , , . , _ . : 4.4.3. a[1]..a[n] - , ( - ). . ( ) , - . 4.4.4. n 0 (2 k) - 1, k- . i- 0 i- 1 - , n*k. . (. - ), . . , i - , i , i , . (: i i- .) m- - . - : 4.4.5. n f, ( ) - 1..m. , f ( ). m+n. . m n ( - , 6 ) i- , f i. : - i, x c f(x)=i, , f(x)=i. 4.5. . 4.5.1. ( - ) n ? . i n-1 . . . 4.5.2. , - n , n-1 . , . ( , .) . , - . n n-1 . ( 1). , - . , n-1 - , , , - - . ( - , , , n-1 : - .) 4.5.3. n k ( 1 n). k- , C*n , C - , k. . C*n*log n . () . . 4.5.4. n , - . , - , ( , ). , ( n/2) . n - , . . , - . . , - . . , i . ( - 1 n.) - c k. : ( i+1..n) - k c- , () , : k:=0; i:=0 {()} while i<>n do begin | if k=0 then begin | | k:=1; c:=i+1; i:=i+1; | end else if i+1- c- then begin | | i:=i+1; k:=k+1; | | { } | end else begin | | i:=i+1; k:=k-1; | | { } | end; end; c- . i:=i+1, . - . 4.5.5. a[1..n, 1..n]. , i i , i - ( - , ). i (, , ). C*n. (, ). . a[i][j] i j , n n . ( , , .) : % PGMMd\PGMMd (xKddd\ (xKddd\8dPC ..RTFؔ@@@ %%! *00*3*((.@3.1s1t/@t/-@x-z z { @{ { | |}@ @     @    @     @     @   @  @     @    @     @     @   @  @     @    @     @     @   @ @ @ 7 7 8 8 $D9$Root Entry;PageMakerL  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  JJ3::+Q1'MP2Щ1Y0$88 88 hL  5 kZ 4&@ } @ Pd 0  @@ L  & ^U N & &4   h $7. MSB  B@ & >  ; G3Ld 26 kZ 3L  1 @ @  @   @} .+@RTF"C:\INSTALL\NEW\cd-pasico\BOOKS\SHEN\druk\ 4.rtf6B1'iO1'P1')1  9߿ A9߿ AEPSON Stylus COLOR 300EPSON Stylus COLOR 300LPT1:@@xGMMd(xKdddContents^tIndex ,^>;^>^=.^> , C:\PM65\RSRC\USENGLSHxA99ddp-p- db9߿ ..--__ +p0P\ )ar0 L޶H޶`d޶Ԉp )ar0ln^)ar L^)ar