This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
B y J ia r 2
A jIT O p H T M b lH U IH H X H J IT 3 3
AiraBaa ajiropHTMHr HMap h st nporpaMM^JiaJibm xsjm HSBTpYYflS-nrYHrssp tyyhhh aaoiJiJiax ropHM, TyxaiuiSaji tyyhhh a^auuiax xyraijaar to itooxo^ cuieopumMbiH uiuH0icme33Huu aopHJiro opinHHo. Tsb1! ajiropHTMHH axHJUiax ropHM,n Main ojioh xy^hh 3yHJic Hejieeimer ynnp TyyHHHr hb ijaB to ito o x h l HX3HX^33 6ojiojvcktyh k>m. XapHH ajiropHTMHH epeHXHH lqhidk naHapaap h l tyyhhh aaauwax ropHMHH TorroJiijoor rapraH aBH 6ojiho. Yyhhh Tyjm ajiropHTMHr uihhxcjisxs.zi; 3aHJimrYH maapflJiaraTaH Y3YYJi3JIT 6ojioh inHHDKYYPHHr To#opxoHJiox h l liyxaji 6aH#ar. Hhm uiHtDKHJirea h l qyxaM^aa ajiropHTMHH axHJiJiax ropHMHr oupojmoozoop To^opxoHJmor k>m. Tscsh x3#hh h Mam 3HTHHH 6yflYYH tohm uiHHacHJirssrssp ajiHBaa ajiropHTMHH nyxaji ihhkdk qaHapnr oHpojmooroop rapraH aBH 6oji^or.3u[CHHH #yha hhm HiHH2KHJir33 XHHCH33p 6im flJiraaTaii ajiropHTMyyaur xapmyyjiaH eepc^H H6o/ JIOrOA XaMIHHH TOXHpOMXTOHrOOp COHTOX flBfl&JI K)M.
3h3 6yJiT33p ajiropHTM xoopoH/jbra fljiraar xapLijyyjiaH, ajiropHTMyyatiH axHjmax oHpojiu;o6 xyraijaar to^opxohjioh 6aTJiax H3r3H apranjiajibiH Tyxan Taiui6apjiax 6ojiho. 3hs aprHH roji OHipior h l to itm oji Kosc^cJjimHeHTYY^HHr YJi X3p3rc 3H, ererAJiHHH X3M X33 xn3raaprYH hx YPYY ts m y y ^ x Yefl ajiropHTMHH aaCHJIJiaX ropHMHr TO^OpXOHJIOX IOM. )KhIII33JI63JI MaCCHBHH X3MJK33 n rsx; ereraee#, ajiropHTM h l 10 On ajixMaac Torm or 6oji 100 tscsh TornviojiHr YJi aHxaapaH tyyhhh a m m a x xyraijaa oHpojmooroop n 6airaa T33C X3JDK 60JIH0.
X3p3B aJITOpHTMHH aJIXMMH TOO HL 2n2+50 T3B3JI 2 6a 50 T3C3H TOITMOJiyyUHr YJi aHxaapaH tyyhhh axauiJiax xyrauaa oHpojmooroop n2 r s x xsjdk 6ojiho. Xs^HHrssp n=5 yefl Hsmyresp ajiropHTM loon h l 500 ajixaM, xoep^yraap ajiropHTM 2n2+50h l ioo ajixaMXHH^srHn2HLn —33Chxynpaacxoep^yraap ajiropHTMHr Hsr^Yresp ajiropHTMaac yaaaH rsac Y33X 6ojiho. Yhhp h l n- u Plh xaHrajiTTan hx yTraHfl flsspxH xapmyyjiajiT h l flMarr yhsh 6aHHa.
HyxaM^aa n >50 ye# xoepnyraap ajiropHTM h l H3rAYr33P ajiropHTMaac yzjaaH
XspsB n>N ye# g (n) <c-f (n) Hexijjraiir HMarr xaHrax c 6a n to itm o ji TOOHyya OJIAOJK 6aHBaJI g (n ) 4>yHKUHHr f (n ) 4>yHKUHHH XyBbfl 0 ( f (n ) ) T32K
• X 3 p 3 B f ( n ) ff O ( s ( n ) 6 a g ( n ) = O ( r ( n ) ) 6 0JI f ( n ) +g ( n ) = 0 ( s ( n ) + r ( n ) ) 6aHHa.
• X s p 3 B f (n) = 0(s (n) 6a g (n) = 0 (r (n)) 60JI f (n) • g (n) = 0(s (n) • r (n)) 6aiiHa.
F3C3H X3AHH M fl33pX HaHap Hb AJiraBap 60JI0 H IIOOITlBOpbtH XyBb/l yprSJOKYH3H 6aftflarrYii.
OT3\^3rji3r33 nb (ihhujkssh 6o;ioh nporpaMM 30XHor*iAOA) aJiropHTMyyoHr eyuupmaaA 6yroy ajKtnuiax xyranaaraap Hb aHrwiax, yjiMaap ly x a ta GoAJiorcyi, xaMrwHH caftH Toxupox aJiropHTMHr ojdk to ito o x o a Maui Myxaji yyp3rr3ii. r3BH O T3Mfl3ra3r33r auiHrJiaxaaa flapaax rypBaH HexuJiHftr Maui caftH xapraji3aH Y33X xspsrreH. Yyha:
(1 ) OT3MA3rJisr33 Hb ajiropHTMHH a*HJi;iax xyrauaaHH (xaMniHH o fip ) A33JI XH3raap 6ojiox scsx. G e p e e p x3ji63ji aMbjipaji fl33p ajiropHTMHim axHJiJiax xyrauaa Hb lUHHJKHJirssrssp to ito o co h 0 ( f (n ) ) xyrauaaHaac xsTpsxryft 6aiix ecTott.
(2 ) opojiTbiH ererwiHHH xaMrHHH Myy toxh o jiao ji Hb aMbApajiA 6apar ToxHOJiAAorryH 6aftx. XspsB o p o jith h ererAJiHHH xaMrHHH Myy toxhojiaoji 6Hejui33 ojicoh ye# tyyhhh axmuiax xyrauaa Hb 6ara 6aiix iuaapAJiaraTaft. Tsbh 3apHM 'lyxaji ajiropHTMyyAHH xaMTHHH Myy toxhojiaoji Hb yhsxssp Myy SaiiAar. Tyxaiin6aji hx tyi33M3JI auiHraaraaar xy p d a n (Quicksort) 3p3M63JI3JITHHH aJiropHTMblH ayHflaX H H ra a X xyrauaa Hb n iogn —tsS nponopuHOHanb 6aiiflar 6afixaA xaMrHHH Myy toxhojiaojia a*HJUiax xyrauaa h i O(n’ ) 6attflar.
(3 ) c 6ojioh n TercreJier to itm o ji TooHyyA Hb TOAopxoHryH 6ereea 6ara to o 6hui 6aiix. OTSMAsrasresr iuyyn 6hiu 6afw iaap tojiopxohjrk 6yii c 6ojioh n to itm o ji Toonyya Hb 6oah t 6aHjiajm Maui lyxan YYpsrreii iom. Ema ajiropHTMWH axcHJUiax xyrauaar 0 ( f (n ) ) r3C3H toxhojiaojia n-33c 6ara n 6ojioh c TOOHyyAWH xyBbA aJiropHTMblH aacHJUiax xyrauaar aB i Y33xryft IOM.
XspsB TOrTMOJi Toor HJi3pxMHJi3Jifl TOflopxoHJiox maapfljiaraTafi 6 oji o T3M #3ra3r33r auuMrjiax 6 o jih o . O ( i ) Hb TorTMOJiur HJispxHiowsr. >Khi1I33Ji63^, S (n) !' 2nlog2a + 5n + 0 (1 ) T3X M3T.
TOrTMOJi K034>4>HUMeHTHHr X3p3rJI3fl3rrYHH H3r aflHJl O T3Mfl3rjI3r33H/( jiorapH4>MbiH cyypHHr TOflopxoHJiojiryiiresp O (iogn ) rsac6HlM3r. CyypHftr c0jibCH00p JiorapM(J)MMH yrra 3eBxeH to itm o ji to oh ooc xaMaapcan eep'uieJiT XHHH3.
EpHbaMapH3rTOflOpXOftg(n) 4>yHKIXHftrO(f (n) ) r35KHJI3pXHHJ13XHbTHHM ‘i x «ji6ap 6hiii. Yyh hh T y m & W aapHM H3r .hypmhht TQHopxotaoH Mepaaer. XaMrafiH ToxHponocroH H3r3H flYPMHHr 3Hfl TaftJrtSapjiaH.
XspaB apryMeHTUH aypHH & < n2 recsH ynyynajx £ (n j <; f (n a)
T3 HU3Traji 6hlu 6nejix 6artiiaji f (n) (J>ynKHHHr mohotoh ecfler <J>yHKH rs/isr.
TeopeM 1. flypuH m ohotoh ecex f (n) cbymaiHfir a> i 6a c>o 6aflx 6yx to itm o ji TOOHM XyBbfl
( f (r i ) )» - 0 (af‘“»)
F3>K TO/IOpXOHJi* 60JIH0 . YlHp Hb HJITrer'I (sKCHOHHHUHajl) (})yHKH Hb OJIOHth u iyyh t (noJiHHOMHHaji) cJjyHKJiasc hjiyy xypjjaH ecfler.
H x sh x «J>yHKHHHr xa p tu yy jia xa# # 3 3 px flYPM Hflr a u ra r jia x 6 o ji# o r . }KhUI33Ji63JI, fl33px TCOpeMHHH f (n) (JjyHKUHftr n, eepeop X3JI63JI f (n) =n T3B3JI 6yx c>o 6a a > i TonMOJiyyflbiH xyBbfl
n° = 0( a”)
raxc 6hmh>k 6ojiho.
G ep H3 r3H JKHIH3 3 6oJiroH f (n) (JjyHKiiHHr l o g n r a x aB4 y3be. Byx c>o 6a a>i TorrMojiyyjibiH xyBba
AjiropHTMbir IHHHM3X ro/i xoep llthh)kyyp h l Tyxata aJiropHTMH maapnar&ax 3an 6ojioh xyrauaa jom. XapHH ajiropHTMbir aatHJUiyyjDK Y^Jiryiirssp tyyhhh a>KHJiJiax xyraiiaar x3px3H M3A3X bs acyyjiT TaBHWax 6ojm o. Xyrauaar aiiropHTMn rYHH3TT3rj[3x ywmjihhh Tooroop xsM^nsr. F3B4 anropHTMA Mam ojioh TepjiHHH yHJTjX3Ji XHHTS3X 6a yhjihsji 6yphhh a>KHJuiax xyrauaa eep00 p 6awnar. Tsr33,a H3T hjkhji yhjiasji xoep eep Tep/THHH tcoMiiLioTepT Men HJiraaTaif xyrauaa maapzmar. Hum# 6h & TyxaHH ajiropHTMHH xyBLfl TyJixyYP YHJWIHWr COHTOX X3p3rT3H. >KhIH33J163/T, XaHJIT 6OJIOH 3P3M63JI3JITHHH ajiropwTMH x a p b u y y n a x YHJUI3JI Hb tyjtxyyp YHJUJ3JI 6ojiho.
10
AjlZOpumMblH UIUHMUM33
XapHH 3anr aJiropHTM aaouuiax ye# uiaapAarAax caHax T exee peivDKy yam\\ h (caH ax oh , a h ck t.m ) xs iv raosrssp TOAopxoHJiAor. AriHBaa aJiropHTM^ m aapflarflax 3an Hb ererAJiHHH x s m x s s n-33c xaw aap^ar y4Hp mxshx t o x h o j ia o j ia 6 h a 3H3 ihh h>kyyP33P a jirop H T M yyA H r x a p m y y j ia x maapAJiararyH 6aHAar.
)KUIU33 1: HHM AaBTaJITblH XaMrHHH 3HTHHH 2CHLLI33 60JI n AaBTaJITblH iAYT33P anxaM 6ypT i yitJiA3Ji (AaBTajiT) xh h x io m . H h h t x h h tas x yh jiaah h h TOO Hb 1 + 2 + 3 + 4 + n 6aHfHa.
XspsB s3 (n) Hb rypaB flyraap spsm Shhh o jio h fh h iy y h t rsBSJi s2 (n ) —h h t 3H3 3p3M6HHH TOflOpXOft H 3r OJIOH rHUiyyHT33p HJlSpXHftJDK 60JIH0. YyHHH Ty jw jjapaax HHftji63pH fir aBH y3be.
AjiHBaa $yHKimftH TownbeoJioJia eepTsii hb hjkhji (JjyHKH oponucoH 6ojt 3H3 hb peKyppeHT TO M ieoroop Toaopxofljio racoH 4>yHKH k>m. Y yh h h H3r coHroflor xh h iss 6o;i <J>H6oH aw iiH TooHyyAtir Toflopxoitnox <J>yHKii; iom. PeKypcT cJ>yHKH Hb peKyppeHT TOMteroop unrapxH&rerfltpr. Mhm TOMi>eo Hb ajiropHTMHH ryliusTrsJi Syroy ajKHJuiax xyrau,aar toaopxohjioxo,zi Mam ohobhtoh xapHyjrr e ra naA/iar. 3 h a 6ha anap h s t ajiropHTMbir 6hhi xapmt TOMbeOr COHHpXOX 6ojiho.
Toubeo 1: 3 h s peKyppeHT TOMi>eo Hb flaBTajrrHH to o Hsresp xopor^ox peKypcT cjsyHKHHHr HJiapxHHJiax iom.
C (N ) - C (N - l ) + N, N > 2 , C (1 )= 0
/I,33px peKyppeHT TOM’beor 3anaji6an
C(N) = C(N - 1) + N
= QN - 2) + ( N 1) + N
= C(N - 3) + (N “ 2) + (N - 1) + N
= CXL) + 2 + . . . + (N - 2) + (N - 1) + N
= 1 + 2 + . . . + (N - 2) + (N - 1) + N
N • (N + 1)
2
3h3 HHHJiSsprair 6nn ofiponuooroop m2/2 r s x y33)k So/rno.
ToMbeo 2: JXapaax peKyppeHT TOMieoroop opojrrbiH ererzyraHH to o Hb anxaM SypT xaracjiaH xyBaar^ax peKypcT cfjyHKHHiir TOflopxoHJiHO.
C (N ) - C (U /2) + 1, N > 2, C (1 )= 0
ToM beoH A GHHHrflcsH n —h h h o h h jio th h t xapranraaH n —h h h y r ra r n = 2 " rsac aB’ i Y33H op jiyy jia jrr xn iie . 3 h s toxhojw ojw 33px peKyppeHT TOMbeoHfl 3aflapraa x h h x s/i to x h po m jkto h 6a fix 6ojiho .
Byjiae 2H ,3 3 p X LU H fe3JT CCOOp N — M H H Ityp b T H yT F B H ^ C (N ) H L O H pO JIU O O rO O p I g N
SaidH ci.
9h3 homohh, 2 cyypbTan ( iog,M ) JiorapH(j)Mbir IgN 6a logN , e cyypbTan 6yioy HaTypaji ( l o g ® ) JtoTappitJjMbir i n n rscsH T S M A srasrssrsap Tyc Tyc MJI3pXMKJl3X 60JIH0.
ToMbeo 3: f l a p a a x p e K v p p e H T T O M L e o r o o p o p o / r rb iH e r e r A J m i f r x a r a c / ia n
x y B a a x w i i 3 3 p 3 r u 3 3 o p o J iT b iH e r e r ^ e j i 6 y p T x a H ^ a x p e K y p c T (fc y H K U H H r
3 h 3 cypax 6H 4H rr ererftJiHHH 6yT3U 6o jioh ajiropHTM bir oHJiroMacToii Taiiji6apjiax 3opHJiroop TsjjrsspHHH 3apHM x sp sr jis s r vKmih33 nporpaMMaap
y3yyjic3H. Hhm 33c 3#r33p )KHiii33 uporpaM M yyabir T y xa ta 6o/uioro,a Hb
roxHpyyjiaH , ijaan ra ji6a ji yHiiiiir^iAa^ TypuiM^K y33X, a>KHJUiyyjiax, slbh
C++ nporpaMMHJiajibiH xs jm iir 3H3 hom oha auiKFJiax 5ojicoh h s t majiTraaH
Hb ty y h h h Main ep reH TapxcaHTaii x o ji6o o to h iom. M q h e e p H3r toji majiTraaH 6o ji C + + , T0,a;pyyji6aji tyyhmm o 6i>eKT xaH^aJiTaT o h u jio f Hb erer^JMHH 6yT3U 6o jioh ajiropHTMbir h sb tpyy jisxsa h sh to x h p o m x to h a opinHHO. C++ X3JIHHH OHiyiorooc xaMaap4 3apHM aJiropHTM 6ojioh nporpaMM Main x«Ji6apxaH 6H4HrflC3H 6ojioxb ir xap>K 6ojiho.
Y r hom oha 6H4Hrj3,c3H C++ nporpaMMbir Taiiji6apjiax£aa 30Bxqh ajrropMTMTan Hb xo ji6oh X3pX3H a^cHJiJiax TaJiaac Hb aB4 ja m , 6ojiho. Mhma VHUiMrq Hb C++ X3Jihhh TOAopxoH cyypb M3AJi3rT3H 6anx inaapAJiaraTaH. 3oxHor4HHH “ 06i>eKT xaHAajrraT nporpaMMHJiaji C++” rs^sr hom Hb C++ nporpaMM4JiaJibiH X3JIHHT 333MinHX3fl XaHraJITTaH MSAJISr OJirOHO. MHM33C 4 T3p HOMOHA apHr^caH 3YHJicHiir 3H3 hom oha #aBTax Hb HJiyyn 6111133. XapHH 3H3 6yjir33p 6ha ererAJiHHH xhhcbsp Tepe ji 6o jiox C++ xsjihmm KJiaccbiH Tyxaii csprssx 6aH,rpiaap tob4 TaHHJmbfl.
liycafl ererflJinftH 6YTUYYflHiir h moh erer/yraftH XHiicBap Tepjieep i o/iopxoHJUK 6ojiox iom. vKHHiaaji6a.ii Qu a aHriiHH ererwiHHH 6ytuyy/ihhh
ini 6ojiox xarcaaJiTbir 3.3 —p 3yparr ysyYJicHaap TOflopxoHJiac 6ojiho.11 jr ereranHHH xnitcBap TepjiHfir Hereefl anm rjiax 6oJxn,or. Tyxaiiji6aji CTeK Oil jjapaajiajw MaccHB KM yy xarcaajrrbir auiMiJia* 6ojiho.
19
Eyji3i 3
6rerAJiHHH XHHCBap Tepeji
AjiHBaa xajiHHH H3r nyxan onnJior 6oji tyyh a TOAopxoftjiorflcoH ererflftHHH TepJiyYfl 6aitnar. C++ nporpaMMiJiaJiUH xsji Hb 6yx3Ji 6ojioh 6o ah t too , T3KH3rr rex M3T yh#c3h ererAJiHHH TepjiYYArJ3c raflHa ererflJiHtiH XHftcB3p Tepe;t Sojiox KJiaccaap xaHraracaH 6aiiflar.
OzezdnuuH xuuceap mopen Hb oSteKT xaHAarrraT nporpaMM'uxajiuH yhacsh yxar/iaxyyH 6ereeA ererae^ Sojioh Tsflrespr xHiirflsx 6aru YHAnAYYfl™r aryyjiflar.I lp o rp a M M 6hhhx r s f ls r Hb 6o#ht aMbflpaJi #axb aM ap H 3r a c y y f l i iu r (6oAJiorbtt ) 3arBapiuiax aaaiJi iom. T sbh ajiHBaa acyyaaji Hb Maui epeHXHH, 6YPX 3r S a jia a r yn p a a c royHbi omho y r a c y yA a ;ifl m aap A J ia raT a ii 6a maapAJiararyH 3YHJicniir HJiran toaopxohjtox, yjm aap acyyAJiHH xHHCBsp o iiJ iro jiT 6 y io y 3arBapbir rapraH aBHa. 3arBap 'u ia ;ib iH 3H3 r ip o u eccb ir
xuuc63p/i3jim r e x H spjisx 6 e re e A 3.1 f ly re sp 3ypraap Y3YYJiJi33-
3 y p a r 3 . 1 . AcyyflUbir xnPicBapnaH 3arBapnnax
3 h 3 3arBap Hb
• Y r acyyAajiA iuaapAJiaraTaii ererflnyYA
• Y r e re rA flYYA W x h h t a s x y h jia jiyY^s s c
TOTTOHO.
18
OeeadjiuuH xuuc83p mope/i 6a C++
Knacc, ty y h h h o n iy io ry yA
SrerflJiHHH xnftcBsp TepeJi Hb ereraeJi 6ojioh tyyha xnftrasx y h w iy W h®h Hsraassp Toaopxoiijioraaor 6oJioxi»ir 6HaTypyYHHHH xscreac msacsh 6hji33. Tsraaji C + + nporpaMM'iJiaJiHH xsjisna ereraJniiiH xhhcbsp TepjiHflr m a c c a a p
Point() { x = y = 0; }Point(int vx, int v y ): x (vx ), y(vy) { ) ;~Point(); ,void move(int dx, int dy ); void reset(in t nx, int ny);
private: int x, y;
} ;
P o in t m iacc Hb xaBTraim tcoopaHHaTbiH cacTeMa x 6a y KoopaHHaiaap oreraceH u sra iir ToaopxoiijiHo. AjiHBaa n sr Hb ereraceH Hsracssp x, y T3HXJi3rHiiH aaryy ihhjdkhx, scbsji ereraceH KoopaHHaTaa uiyya ihhjdkhx i 3C3H ytaaJiyya XHftraasr rsac ysbsji TsarsapT xaprairaaH move ( ) , r e s e t ()I 3C3H (JjyHKUYYa ToaopxoftjioracoH 6aiiHa.
/J,3spx KnaccbiH 3apjiajrraap P o in t rac3H xspsnrennriiH Toaopxoiu icoH TepeJi YYcsx 6a y r T ep jieep 3apjiaraax xyB bcar'in fir o d h eu m r3H3.
K jiacc 6a oG^eKTbiH Tyxaft OHJirojiibir ynac3H ereran n ftH TepeJi, Tyxaftji6aji Gyxsji t o o h T ep e jiT s ii acHiUHac Taftji6ap jia ;i. EyxsJi t o o h TepeJi Hb C + +
KOMnHJIHTOpT int TYJIXYYP Yr33P T oa op xo ft jio ra coH YHACSH ereraJIHHH i opjiyyaHftH H3r iom. Ena nporpaM M a 6yx3Ji t o o t o 6 aaauuiax maapaJiaraTaft Ooji 6yx3Ji t o o h xyBbcani 3apjiax ecrott.
int n;rs)K 3apjiacH aap n xyB b ca r 'i Hb 6 yxsji to o h e re ra eJ i xaa ra jiax 6 o jih o . H ur3CH33p 6 Ha n xyBbcar4Ha y rra o jirox , to o t H3MX, xacax 6ojioh TYYHHft
y rrw r xsbjisx 33psr YHJWiYYfl x h h x 6 o jio M *T o fi 6ojiho .
I jrBSJi point KJiacc Hb (in t TepjiHHH H sr aaHJi) e p a ee ji x sp srJ isrm iiH ToaopxoHJicoH H3r TepeJi io m . FIporpaMMa Point TepjiHHH e rera o jiT a ft a*HJiJiaxbiH Tyjia Point KJiaccbiH o6beKT (xyBbcarn) yycrex ecToft.
0 6 ieK T yyA xoopoHAMH xapbttaar 3yparr cyMaap HJopxHiuicaH S a ta a . 06beK T nep iriin xejiBwiir eep n jrex 6ojioh 6ycaA oSieKTOA M3A33 AaM xyyjiAar.
20
L
Eyme 3Point p i, p2(3,7);
p i 6a p2 hb P o in t KnaccHH oGteKTyyn iom.
XapHH Point Kiiacc Hb erer/uieec ra#Ha (jjyHKuyyA aryyjDK 6attflraapaa int Tepjieec ape HJiraaTaft iom.
KjiacCHHAOTOOflererAJlHHHflaJmJiajrrar public, protected, private T3C3H anrajwaap Tortopxoiuwor. Kjmccmh public rwuiyYASA yr kuhcchh rmnyyH 6hih x3p3rji3r>iHHH ayptiH 4>yHKH33p h xaHAax 6oJwor. XapHH protected eror;ieji;i yr KJiaccHH rainyYH 4>yHKH 6ojioh yr Kiiaccaac y/iawuicaH KJiacctiH thuiyyh 4>yHKHYY5 xaHflax qaaHa. Kjiacctm private ereraeJW yr (J>yHKHHta rmuYYH 4>yHKU33c 6ycaA 4>yHKH xaH/iax yji iia;iHa. MHrscHssp KJiacchiH o6ieKTyyrtUH arer/iejw nporpaMMBiH srMap hot ra3ap TOXHOjypioop eep>Hie;iT XHHW3X33C cspraiuisx 6ojiho.
Bhahhh aBcaH xhuisshm h xyBB/i x, y rHinyya Hb private xaHflaJiTaap TO flopxofljiorflcoH 6aflHa. K jia cc flaxb p r iv a te 6a p u b lic xscrn ftH Toflopxoiijiiorflox Aapaajiaji Hb xaMaaryii. XspsB 6ur private raiHYYAHHr p u b lic rMIHYYAHHTl 6MH0 X0fl0pX0 ftjl6 0JI p r iv a te T33C 6HHHX ereX uiaapAJiararyii. Xohuihh 6ha miaccHH 6hhji3™ hh shs x3Ji63pHttr Mepnex 6ojiho. x 6a y rHiuyyH ereraJ iYY fl™ r h h t s * p riv a te xaHflajrraap TOflOpXOHJICHOOp 36BX0H yT KJiaCCHH THIHYYH 4>yHKHYYfl XaHflaJK H'dRH'd. Hhmssc raflHU opiiHooc Ayy/iai'Aax tmuiyyh (JjyHKHYYfl H;b public xaHflaJiTrali 6anx ecTOH. 06T>eKTo,n; xHHrflsx rmnyyH (Jjyhkhhhh AyyjiajiTbir odteKToji M3daa daMMcyyjiax reflsr. Point loracc hb move () , reset () rscsn rmuYYH 4>yHKHYYA33c raflHa Point ( ) , -Point () rscsH eaftryyjiar'i 6o;ioh ycTrar'i 4>yHKHYYflHHr aryyirac 6aiJHa. FHiuyyn 4>yHKHHHH ko^ hb KJiacc florop scbsji KJiaccHH raflHa TOflopxoflJiorAOJK 6ojiho. Fhuiyyh (J>yHKHHHH ko/i kjmccbih 3apjiaJiTHH ra^Ha TOflopxoHJiorflox yeff Myaoian Torroox : : onepaTopbir aranraaflar. 3Chhi33Ji63ji
void Point::move(int dx, int dy) { x += dx; y + - dy;
)
MyxoiaJi to tto o x onepaTop hb move () cjjyHKUHiir point KJiaccMH Myaaifl xapbaaJiarflax60Ji0XBirK0MnHraT0pTX3Jnn;3r. Mhmssc C++ xsjish/i ji-nraaTaii Knaccyyn h xh ji Hspreft c|jyHKH aryyjrac 6ojyior.
ii ipniir U3FMHH xaMTaap (JjyHKHHttH Ayyaajnan aiuHnrauar. )Khui33ji63ji p2 m H oaiiraa 6afipjiajiaacaa xTaH xnsraiiH flaryy 4 Hsrac, y TSHXJisniiiHAaryyI 1111 * iiihjdkhjit xHfte raBSJi:
move(4 ,1 );
Mi 1 nyynajiTaap aeBxen p2 uar iuhjdkhjit xhhx 6a p i us i t a Map 4 hojiqo V lYV'i ixr'YH. Yhhp Hb p i 6a p2 o6teKTyyfl Hb h x u r T epem sn 6ojiob4 mn iiiiTaft o 6T)eKTyyfl, kim.
* )0hektuh p r i v a t e xaHflajiTraii rnuiyy/13/i 36BxeH p u b l ic xaHAanTTaii «|iy 11 knyyA33p AaMxyyjiaH xanaax 6ojiho. XspsB p r iv a t e rHmyyiPA
. x - 2; I I aw aa
1 1 a xaiwaxur opcmaBcwi ajmaaHA xypHS.
» i.iccbiH H3r oHUJior 6oji 6auzyynaait 6ojioh yamcu'H ihu jyyh ct>yHKuyy,HHMr .11 vviiJiarTopiiiMHo. BaftryyjiarH 4iyHKUHHH HapHb miaccbiHxaa HspTsit hjkhji <•.uwiar. BaiiryyJiarH4>yHKHX33334 roispxHiiziyy/ianiaxrYH 6a 3eBxeH o 6 ic k t yyi ix (sapjiaraax) yea o6i>eKThiH ramyyH ererfljiyyflsfl aHXHbi yrra ojirox itipny;iaOTaap aBTOMaxaap ayyaar/uiar. K jiacc Hb 6aliryyjiar4 f})VHKUHHi .11 svJiaaryH 6 a i i* 6ojiho. EaHryyjiani (JjyHKU HMap a4 xoJi6oraojiTOH 6o.no h Nti.ip YYP3IT3H 6ojioxbir P o in t KJiaccaap itm xaTaH Taiiji6apjiaH. Point.1 M.iccbiH xoep o6"beKTbiH 3apjiajiTbir sprsH xapi>si.
. 1,1 p i, p 2 (3 ,7);
»n 1 mpaaOTaap xoep o6i>eKT6yioy xoep HsrYYCJres rscsH yr. KoopaiiHarun in ic-M fluaryycH3reasr Hbyr uarHb ( x , y ) KoopAHHaxaapererflJiee recjH 1 ( hipeep X3JT63J1 flsspx 3ap/iajixaap p i o6beKTbni x 6a y rwiuyYASA yrra
i i i i i.ckt 3apjiar;icaH Myxtaacaa rapax 6yioy caHax o iirooc neaee^ieraex yea. n i l a n (JjyHKH ayyAarfliiar. KjiaccbiH rHmyyH ereiAe.fi AHnaMHK xyBbcarnaap 1 i.i.n ’iaap) TO/topxoHJior/icoH yea ycTrani (JjyHKU Hb Mam nyxaji yypsrTSH.I mh.ckt Myxaac rapax yea tyyh h h AHHaMHK rHmyyASA n een en cen s a f e u 11 ,114 (JjyHKHHHH TycJiaMacTaflraap caHax o iiro o c 4ejieeJiAer. YcTrar4 'I'VIIKUHHH H3p Hb KJiaCCblH H3pT3HT33 3AHJI 6ereeA TycraH ~ T3MA3IT33P »X Ui;i3r. }KHHI33Jl63JI P o in t KJiaCCblH ycxral 4 cjjVHKH Hb -P o in t () T3C3HII nrrsft 6aiina.
IwiaccbiH p r iv a t e rHiuyyipA yr KJiaccbiH muiYYH 6hux 4>ynKu,33p xanaax
XapHH KJiaccbireep KJiaccwH HaH3aapTOAopxoHJicHoop yrKJiaccwH rauiYYH cjwHKuyyii HaH3 KJiaccwHxaa p r iv a t e , p r o te c te d , p u b lic xaHflajnTaH 6yx
C + + X3Jt h h h h x s h x on epaTop b ir KJiaccT ^axHH To,n,opxoftjiJK SoJIAOr.^KhILF33JI63JI P o in t KJiaccT « OnepaTOpbir tfaXHH TO£OpXOHJICHOOp p i 0 6 'beKTbiH (nsrHMH) KOOp^HHaTbir X3BJI3XJX33
f r ie n d ostream & o p e ra to r< < (o s tre a m & ou t, con st P o in t & p );} ;ostream & o p e r a t o r « ;( ostream &out, con st P o in t &p){ :
ou t << "x = " « x << e n d l; out << " y = " << y << en d l; r e tu rn ou t;
1 3apjiaH TOAopxoHJiHo. 3h3 3apjianTaap sxsjdk Point KJiaccblH 6aHryyjiarc «|»yiiKU AyyAarAaH Point o6i»eKT YYC35K> Aapaa c irc le KJiaccblH 6aiiryyjiarH *|»vhku AyyAarAaH c o6T>eKT yyCH3-
Ey/iai 3C ir c le ; C i r c l e .(int., rad, Tiftt. cx , int. cy} ; Point, (px, ,cy}.{.
.radius ,=. rad;f
y/iaMmcaH o a ccu H 061^ k t Myacaac rapax YeA sxji33A yaaMiucaH KJiaccsra ycT ran 4'Yhku, aapaa hb yhacsh Kiiaccun ycTrara 4>yHKH AyyaarAtfar.
I0.. -* \ . ' ,'t ' «... , r, r ; .,,
C ++ nporpaMM'uiaJibiH xsji hb am m tu (3Gbxoh H3r yhacsh KJiaccxafl) yflaMimiJi 6a h uujim3ji (x3A xsash YHflC3H KJiaccxaii) y/.(aMLUJiyyflaap xanraiAcaH.
C++ X3/I3 HA v i r tu a i TyJixYYP Yra iir eupmyan tc/iacc 6a eupmyan (pymcu, rscsH xoep 3opnyjiarcraap auiiw iaAar. BwpTyaji icnacc h i hhhjimsji yuaMiujiHH OHurofi toxmojiaoah flpi-rr/inar 6oji BHpryaji 4>yHKH hb C++ xsjihhh XHHX3H3 oGteKT xaHAaJixaT ihhhjk iianapBir Y3YYJI3X AHHaMHK xo ji6o jith h yea apHrwar,
3 h a 61m 23 —n iir (2 -h h h n 33p3x) 6oaox Mam shxhhh >KHiiJssr peKypcssp xapxsH uiHHH3XniiraBM y3te. M 3/1,33>k 3H3 6o/yiorbir aBxaJixaap xflJiSapxaH TJIHHII3X 6 o jto x 6eree.x napxajrrwr peKypcssp co jihx 6ojtom)kxoh.
3h3 o n iy io ro oc A33px nporpaMMfcir peicypcssp xHJiSapxaH iiihhab^k 60jiox iib xaparAaac 6aHHa. H e r e e TaJiaacA33px ajiropHTMbiH aAHJiaap 2n —h h t ojiox 6ypT n AH3BIH (JjyHKii; 6hhhx Hb yrra ry ii k>m.
n=3 6yroy xoepbiH 3 33prnnr ojtoxo# power ( ) (})yHKU[ h l flapaax anxMyynLirXHMH3.
f { 3) = 2 * f (2 )
f (2 )
f (2 i: = i 4:
“)hxi33c p o w e r () c^vhku napaax y n w 6yu;aaHa.
• - 9 0 * 8
PeKvpcH H axHJuiax 3apHMLir (O p ocL iH apALiH) *3 a x p y m ^ t x y y x s w s n T0rjT00M00p TaHjr6apjiaBaji HJiyy 0HJir0M)KT0H iom. EodAoao: M aTpyuiKa xyyx^ jm sii hb 6 n e 6nec33 jjoT p oo aryy jicaH 6am^ar 6a h h h t xh*ih33H XYYX3JTH3H 6awraar ToaopxoMJi.
YyHHH TVJIZI XaMFWHH ra^Ha TaJILIH XYYX3JT43HH33C “ TOHHH JIOTOp XH4H33H xyyx3Jiii3H 6anraa B3?” t3>k acyyHa. XaMrHHH rajma TaJiHH xyyxsjypH h l eepn iiHxee jioTop TajibiH xyyx3Jm3HH noxop m um xuhhs3h xyyxsAdsu daueaae M3d3xeyu ynnp tyyhssc (aoTop Ta/iLTHxaa xyyx3JW3#H33c) “ *ihhhh aotop xhiih33h xyyx3Jm3H 6anraa bs?” Uqh r3X acyyHa. 3 h s m sto ish xyyx3TO3H 6yp eepHHHxee iioTopx xyyx3JXZ13HH33c acyycaap xaMiHHH #0T0p t3 jilih 6yioy cyyjiHHHH xYYX3JT,n;3H “ mhhhh jio top xyyxsji^sh 6aHxryH, 6h e a n i^ a a p a a
xoep” rajK ra^Hax xy y x s to sh h a xapnyjiHa. 3 h s m 3tli/i3h xaMrHHH a o top TOJIHH XYYX3W3HH33C 3XJI3H XHpMyjICaap xaMrHHH ra/IHa TaJIblH XYYX3JIA3H iiHHT XHHH33H xyyxsjtash 6aMraar xsji^c liaAHa. 3 h a xyyx3JU13hhhh. acyyjiT 6yp (j)yHKUHHr p ex y p cs sp AyyAax A yyA a jrm r, xaMrHHH a o to p tm b ih XYYX3JIA3H Hb 30rC0X H0XUJTHH11, xapHH XYYX3JIA3HH XapHyjlT Hb YP AYHr nsrrrsH rsApsr 6yuax y h jw ih h x Tyc Tyc hjispxhhjdk S a taa .
ilapaaqHHH am n issrssp n — m m 4>aKTopHan (n ! ) o jio x 6oAJiom r slbh \3bt.I p Hb MaTeMaraKbiH ajiHBaa peicyppeHT TOM beor peKypcT c^yHKijsspII uiopxoHJDK 6ojfflo . n ! —h h t Aapaax TOMbeoroop ojiaot.
mivYHHftr ojiox yftJiflSJi (xyrauaa) Hb cyy^ h h h xoep rmuYYflHiir hsmsx IWiim/map uiyraMaH xaMaapjiaap xHwr/m3r Ghjiss.
IS * \ in i yftrssp flaBTajrr Sojioh MaccHB aiirarjiacHaap Fn rHiHYYHHHr ojioxoa m i>i i yynax xyrauaar uiyraMaH 6yioy n —33c uiyraMaH xaMaapaxaap xaJiSapxaH
«>I>xohjuk 6ojiho.
i i » i in t max = 20;!«*< f i bonacci (in t n) {
lot i, FfmaxJ; r|0| - F [ l ] = 1;I " i I i -2; i<=n; i++)
I i ] = F [ i - 1 ] + F [ i - 2 ] ; f * turn F [ n ] ; ’ *'/ ■
33
Pexypc
UHwiax peKypcT (JjyHKn h l S h iih m h 6oflJiortiH 3opm irh ir xaH rax Sojthg.
•I rule (int 1, int r, int h) { tut m = (l+r)V2) t r (h > 0 ) {
mark(m, h ) ; iule(l, m, h-1); rule(m, r, h-1);
1 1 »px 4>yHKiX3flayyAarflcaHmark(m, h) cJjyHKUHb m 6aiipna.au h eHjtepTstt
lyp.iac raBHX Sojiho. 3 ha 6ma3ha HMap 3ypaac n a x TaBHX Hb ro;i 6hui, xapnH
1 k inrjn- Hanrrax apraap ajiropHTM xspxaH aaatjuiax, acyyzuibir xapxSH
mimn jA 6aftraa Hb ltyxa;t iom. XspsB xyBaapb xooponabiH H 3 r x 3aMr 1 /26 iiixaapopyyji6aji 0 6a 2h xoopottflox 6yx6aiipjiajiyy.aaA xaprajmx 3ypaacbir
Initmia. )Khui33Ji63ji r u le (0 ,6.4,6) rexflyyflBaji 4.2 —sap 3yparr y3yyjicH33p111 yi uMaHfl xyBaapb TaBHx 6ojiho.
3ypar 4.2. UJyraM
111 e () (JtyHKU Hb xspiMHHH rojifl sxhhh sypaacur TaBbCHaap yr 3ypaac v ip'iMHftr 6apyyH 6a 3yyH recsH xoep xscsrr xaracJiaH xyBaana. 3hs iwiA-UHHr xaracJiaH xyBaarAcaH xacsr SypT ry iiiisTrexAss 3ypaacbix
flsspx c^vhkuhhh aprvMerrr n Hb max —aac xsTpsxryft 6aftx maapjyiaraTaft 6a 30ISX0H 3XHHH max ITHIIYYflHMr OJTOX 60JI0MJKTOH. r3B4 M3CCHB amwrjiax yea n iryrssp nimyyHMHr ojioxmh Tynii qmhox n-1 ruLuyyHHiir xaarajiax HJtyynsJi saii iijaapiiaraaFia.
3 n a w a c c H B r y H r 3 3 p 30BX0H flaBTaitTaap O H G o i i a u H H H Toor ojiox H3 r
cjjyHKuaftr xapjjraafl.
i n t fi.l30na.cpii in t . ;ti), t . ,,irit ft}',.' .fl] f , M, f - f i 1 FO-'iJ f l " - I ; for !i=2 ; Vl<-T.; Sw| f
f - fO + f l ;£0 = f l ; a ■ <i;f i mafaOf
return' f t / .
3ira <})yHKU3ji b Jiyr33p rHiiryYHHftr oJioxofl epaee rypBaH rycuax x y B B c a r m t e
rycjiaMXTaiiraap yrryvvrar c o j i h/i u o x 6air#Jiaap mnifflsac 6aftHa. 3 h 3
■{miKHHWr peKypc aiiiHrjiaH aapaax 6aHflJiaap ToappxoftjDK So j i h o .
int fibonacci(int n, int f 0“ l , int £1 =1 ) { i f (n < - l ) return f l ;else retarn fiboriAcci(n-1, f l , fO + fii;
Xac3rJi3H—H3rrr3x apra
X3C3rJi3H-Ji3nT3X apra hb ooaJiorbrr peKypcaap nsfl ( x t i x m ) xscryYfl3#
xynaaH, xscsr 6y p h h h xyBLii 6oxuiorbir ijihhioh yp flyHryyimftr H s rrra x 3aMaap aHXHbi 3x So/uiorar ium ju i3T. 3 h s aprar aniHraacaH ajiropHTM Hb
3 H rH H H , ypaH 6o j i o x o o c raima h x 3 h x # 3 3 Maui yp aumrraft 6o;u(or. XacsrasH- rorrrex aprar x o e p ra H xaftjrrbiH ajiropHTM, xyp^an 3p3M63Ji3JiTHMH
ajiropHTM, HHftjiyyji3H 3P3m63JT3X ajiropHTM 33psr M am ojioh ajiropHTMfl
aiiiHniaaar 6oJioxbir h o m h h flapaawi-m 6yjirYYfl33C xapax 6ojiho.
S fott 6 h a H 3 r f lY r3 3 p i p e K y p c t i r TaH Ji6ap jiax , x o e p a y r a a p T a s s p x ;uTropnTMyyawr o ft jiro x o a cyypb 6ojiox y ya h ssc x3C3rji3H-H3rrr3x a p ra r
aum niaeaH H3T3H x n m s s r aB1! Y3be. 3 h s *1111133 Hb e re ra c o H xspqHM/i
} m yraM am i) xvBaapb Tannxaaa xyBaapHHH 3ypaacbir 1/2 6aftp jiajiaac 3X3jdk, 1/4 Gaiipjiajryyjiafl apart 6o n iH o 3ypaac, 1/8 6aftp jiajiyyaaa m ryy 6orHHOXOH 3vpaac TaBHX 6aftflJiaap ryHU3Tr3H3. f la p a a x x3C3rJi3H-H3rTr3X a p rw r
Peicypcru le (0 ,8 ,3 )
r u le {0 ,4 ,2 ) r u le (0 , 2 , 1 )
r u le (0 , 1 , 0 ) mark( 1 , 1 ) r u le ( 1 , 2 , 0 )
mark(2 , 2 ) ru le (2 ,4 ,1 )
r u le (2 ,3 ,0 ) mark (3,1)
r u le (3 ,4 ,0 ) mark(4,3) r u le (4 ,8 , 2 )
r u le (4 ,G, 1 ) r u le (4 ,5 ,0 ) mark(5,1) r u le (5 ,6 ,0 )
mark(6 , 2 ) r u le (6 , 8 , 1 )
ru le (6 ,7 ,0 ) mark(7 , 1 ) ■ i i I i I i
3ypar 4.4 XyBaapb raeux (inorder)
i j t I yxaiiH aruiHHfl 36BX0H hot flHCKHiir uiHJDKyyjiHa. ii>) HMap H3rflHCKHflrTYYH33C 6ara xsmjksstshahciohflaap uihjdkyy;i3H
Gatipjiyyjix 6oaoxryH.
\ > i > j ;iaM HapflHCKwiir iuhjdkyyjdk flyycHa, Tap ye,n rajiaB royjure rex flO M o rr upflnr. .
I>yx jincKHHr uiHJracYYJ!* flyycaxafl xsa sh aum uiaapflax B3? 3 h s a cyy jm iH »n pw y r yHUiHm Ta flapaax uiHH/yiHHH x s c ra iir uaaui YpsnKJiyyjraH ynuiHxaac
"M ile TOOHOOJDK Y333p3H.
I ix 'iixH ii TOXHOJiflOJifl flssp x 6o fln o rH r n a h ck h h h xyBbfl rypBaH u ioh th h h »i x >|K)Hfl C3JIT3H H3r33C H eree fl 6aHpnyyjiax (Soanoro (xm roH, TyyHHiir xapx3H nporpaMMHJiaxHr 6h a 3h a y33X 6o jih o . ^Chui33^63ji n=3 y e fl X H iirflax yHJi/uiHiir 4.5 —p 3ypraap Y3YYJUI33.
I vpnaH u ioH r 3yparr YSYY-^cHssp A < B< c ts jk T3Mfl3Di3H a h c k h h t xoep m o iin iita xoopoH fl, Tyxaftji6ari a u io h to o c b u ioh a uihjdkyyJIsx y to fln H lir* > b raac h jispxh h jibsji:
3 h 3 xacrasp ajiHBaa acyyflflbir peKypc aiunrjian xapxsH uiHH/jaxuHr Xanom HOMxeuuH 6ofljioroop TaHJi6apJiaH. 3 h s 6ojyioro i i l flapaax aom iooc rapajrraft
IOM.
A h x epTenii yycax Yen 6ypxan 64 ajrraH ahckhh f Hsr iiioha Hb epceH rypBaH uioHToil cyypuftr EpaxMa cymhhh JiaM HapT erceH. Y r 64 ahcx Hb 6yrfl x3M5K33r33p33 flJiraaTafi 6e reea xaMrHHH tom ahcksh flasp yflaax X3MXC33T3ft flHCK 6aiipjiax 6aiiflnaap xsm>K33hhhx33 xyBbfl 6yypax flapaararaap eperflceH SafiB. JTaM Hap 6yx ahckhht aHXHbi epcaH iiioh iooc eep uioHfl hihjekyyjisxass h3M3jit liar moHT auraraaH flapaax flypMHftr SapHMTJiaH eflepr Hsr ahck
i.uhji* y YJI3X K)M. YyHfl:
36
Byjiae 4
n = 3: A->C, A -»B , C->B, A">C, B->A, B-»C, A"> C
9ha Scyurorbir pexypc awmnan mHHflax anropHTMTaft TaHHJim>H. JXuckuyih too n>i Yefl Gofljiorwr aapaax 6aftflnaap rsr xscsrr SaracraH u m i i n s x Hb axHrjiaroaac Saiina.
(1 ) A IHOHIUHH opottrooc n - l flHCKHHr b uioha iuhjihcyy^hs.(2) A UIOHFHHH OpOHTOOC H3T HHCKMH1' C lUOH£ UUHJI3KYYJIH3.(3) B moHrHiiH opoiirooc n - i /w ckhm p c moHfl uihjokyyjihs.
T y x a H J i 6 a n n=s Y e # 4.6 - p 3yparT Y3YY^CH33p 3H33fl 6oanorHH flsfl x a c a r 6ojjox sxhhh 4 OTCKHftr b uiOHfl KFHJDKYY-’fcHHH Aapaa x a M r a f t H cyyothkh
- Ai ,, ,.a.
A B
3ypar 4.6. n ancKMwr ujMnjKYY^axfl3^ n-1 amckmwh xyBbfl axroafl ujnftflHa.
38
PeKypc
( Kit M THHH t o m ) AHCKHHT C MOHfl IHHJDKYY-fl3H 6a iip b ir Hb OJICHOOp B IHOHrOOC 4 /IHCKHitr C UIOHH UIHJI3CYYJ1[H3- M3A33JK OPOHH 4 AWCKMWr 6eeHfl H i H3r
yiui/uissp uiH/iXYYJisxi'YH 6eree,u m o h ji t y y h h h flsfl xscsr 6 ojiox opoH H 3 a i ic k h h h x y B tfl acyym iB ir u ih h h s x 3aMaap ry ftu sT rsH S .
XaHOHH HaMXTHHr 60fl0X 4>yHKU,HHH KOflbH flOOp Y t ¥ P » » .
v o i d towertint nDisks, char start, char dest, char spare) { i £(nDisks == 1 ){
cout « "Move disk from " « start << " to “ « dest << endl;)r i s e {
tower( nDisks - 1, start, spare, dest ) ;cout << "Move disk from " « start << " to " << dest << endl; tower( nDisks - 1, spare, dest, s ta r t );
\ ip iB 6m;i flHCKYYHniir a m o H ro o c c hioha uihjdkyy-113* 6oji
Iuwer(n, 'A ', 'C ', 'B ') ;
i I * ;iyyu ax 6a n —h h h 3apHM y r ry y g a f l x n iir/ o x u ih jd k h jith h h T o o r f lo o p
*mcaaiiaa... - I /IHCKHHH XyBbA 1 IUHJDKHJITII - i /1MCKHHH XyBbfl 3 HIHJDKHJIT ii- 1 /1MCKHHH XyBbfl 7 UIHiDKHJlT
n - jo b h c k h h h xyBbfl 1,048,575 u ih jd k h jit
i i - ».4 /1HCKHHH XyBb^ ? UIHJIJKMJIT SylO y ? 5KHJI
I |X>IIXHHTOXHOJMOJTOnflHCKHHHXyBbiH2"-lUIHJiaaiJITXHHH3. OepespX3JI03JI• m i ajiropHTMHH ajKHJiJiax xyrauaa Hb o ( 2 ") 6aiiHa. Bhahhh yasx »>i i opHTMyynaac XaHoiiH uaMxar Hb xaMrHHH yaaaH aaouuiaxajiropHTM iom.
A i <px peKypcT KIHHH3JI Hbxacan iaH -H arrrsxaprbir am m Jiax Saitna. 9 ep eepV nifvjJlnAHCKHHHUXHJiaaUrrHftrUIHHfl3X H iiH TyJign-iaH CK 6a 1 m C K T3C3H
11/1 xacrYYflSA xyBaaH u ihhasxc 6aftHa. ^epBO H xihck um ji^YY-'i3* Yefl . wi-i (4, - A' , -c ' , ’ B ' ) (JjyHKUHlir T3JK Ayyflaxafl 6a ty y h h h peKypcT
is yjiajiryyuhir 4.7 — p syparr moa x3Ji6sp33p Y3YYJ1-I133- 3 h s n=4 toxhojiaojid, I I I I I I I 1 5 UIHJiaCHJIT XHftH3.
39
towers (4, A, C, B) A-C
t o w e r ( 2 , A , C , B ) •; A->C
t o w e r ( l , B , C , A ) B -»C
3ypar 4.7. n=4 amck LUMJDKyynax peKypcT uunMAan
Ebk jihahhh ajiropHTM
9ha 6ha xoep 3ep3r to o h lj xaMrHHH hx epeHXHH xyBaarraifr (XMEX) ojiox 6o^Jiorar aBii y3H3. Xap3B k Toor n 6a m tooh u xaMrHHH hx epeHXHH xyBaara T3B3JI (1 ) k Hb n 6a in TooHyyAur xoeyjiaHr xyBaax qaAHa, (2 ) n 6a m Toor xyBaax 6ycaA to o Hb HMarr k —raac 6ara 6aHHa.
XaMrHHH hx epenxHft xyBaar^HHr ojiox nporpaMMur #Map h nporpaMMMiiajibiH xsjia AaBTajrraap hoxuq/i majiraH ojdk 6ojiox 6ojiob4 3HA 6ha Ebkjihahhh ajiropHTMtxr coHHpxox 6qjiho. Ajib xoep MflHraH xhjihhh 0MH00C M3A3TA33K 6aHraa 3H3 anrOpHTM OpHHH YeHHH KOMIIblOTepT auinrjiarAcaap 6anraa Hb yH3X33p raftxaMWHiraH iom. 9hs aJiropHTMHH caHaa Hb xspsB k too Hb n 6a m Toor xyBaajxar 6qji moh T3Ar33pHHH suiraBpur xyBaaHa rs^rssc YY#3H rapcaH. X3p3B n>m 6oji n 6a m TOOHyyAbiH X H EX Hb n-m 6a m TooHyyAHH XMEX-TaH h^chji 6aitaa. XaMrHHH hx epoHXHH xyBaar^HHr ojiox 3H3 ajiropHTMur peKypc auinrjiaH x«Ji6apxaH luhpIhs*:
|Cj/I,33px ajiropHTMBir xspxsH ca ibK pyy jiaxn r sh a coH H pxu rooe. 0 mhqx ajiropHTMHH n toohooc m Toor xacaxAaa n-m hb m toohooc 6ara 6ojitoji i Y^U3iT3rA3X yhjiajehhh yp JXW hb n Toor mTooHA xyBaaxaA rapax YJWPrAJiHHr ( >jioxtoh aAHJi iom . H ht3ch33P aJiropHTMA n toohooc mTOor [n/m] yAaa xacax Y<iJiAJiHHH opoHA n mod m T3C3H raHU yhjia jissp opJiyyiUK 6ojiho. 3H3 aJiropHTM YHAC3HA33 Ebkjihahhh ajiropHTMaac rapax 6ereeA ty yh h h t Aapaax |)CKypCT (J)yHKU33p HJI3pXHHJm 6ojiho.
In t g c d ( in t n, in t m) { i f (n%m =~ 0) r e tu rn m; e ls e re tu rn _gcd (m, n%m);
)ii3 ajiropHTMBiH aacHJUiax xyrauaa hb O (io g n ) 6aHHa. Y yh h h t 6aTJiaxAaa m m a p H3r Torm oJi ajiXMBiH Aapaa a t o o xoep AaxHH 6aracaxnr xapyyjiaxaA vain ajnraH. G epeep X3Ji6aJi xoep ajiXMBiH Aapaa YJiA3rA3Ji hb aHXHBi 3X yrrBiH miracaac xsTpsxryH 6oJioxbir fSPpfi&x iom.
. [ ) jpx gcd ( ) ajiropHTMBiH AMap H3r AapaajicaH xoep ajiXMBir (peKypcT nyyAajiTBir) aB4 Y3fce* 3 x h h h ajixMaap a 6a b (a>b) TooHyyA hb b 6a a mod b 1 < h iilyyAaap c o jih fa o h o . 3 a f 33P t o o hb Aapaa^miffl ajixMaap a mod b 6a b
1 (a mod b) TooHyyAaap c o jih ta o h o . 3 h 3 xoep ajiXMBiH Aapaa sxhhh t o o
»im, a mod b t o o 6 o jio x 6ere0A Aapaax TeopeM ecoop 6h a h h h 6aTJiax 3yHJi r*a 1 ;iarAJiaa.
T to p eM : X3p3B a>b 60JI a mod b < a/2 6aHHa.
luiriHijieaa: flapaax xoep toxh o jiao jia ca/iraH SaTajrui.
( I ) X3P3B b>a/2 6oji a mod b HB a -b 60JI0X 60T00A 3H3 HB a/2—aac 6ara fiaftHa.
( } ) X3p3Bb<a/2 6oJla mod b HB HMaiTb—33C 6ara 6OT00A3H3 HB M0H a/2 aac 6ara iom.
(2) SjieMeHTyya; Hb caHax ohh AapaajicaH yypyyASA 6aiipJiaHa.(3) H hKT 3JieMeHTHHH TOO Hb to itm o ji 6aHHa.
/],33px mHHXYYA33c xapaxaA MaccHBbiH AypHH 3JieMeHT3A myyA xaHAax 60Ji0M7KT0ft. MaccHBHH 3XJI3JI (sxh h h 6aHT) Hb caHax oh h x 6aHpJiaJiaac 3X3JiA3r 6oji k Ayraap 6aiiT Hb caHax oh h x + k - i 6aHpJiaJiA xaArajiarAaHa. HhMA 6ha MaccHBHH 3JieMeHTHHH TOpJIHHr (H3r 3JieMeHTHHH X3M3K33) M3A35K 6aiiBaji MaccHBHH AypbiH 3JieMeHTHHH 6anpjiax xaarHHr TeBerryn o jiho. T sbh A33A TyBiiiHHH nporpaMMHJianbiH xsji aumrJiaac 6anraa xsh 6ojiob*i MaccHBbiH 3JieMeHTHHH 6aHpjiax xa a rH iir to o i jo o j io x HMapq
u*\\\ www TepJieec yn xaMaapaH m accMBbi h HMap ii 3JieMettT3A HHAeKC33p lii mtuuix Gojioiocroft. )Khui33Ji63Ji C++ xsjisha a MaccMBbiH i AYr33P HHin >n a [ i ] r3>K xaHAax 6ojiho.
*• ■ \ww.\w H3T to r omyior 6oji 3JieMeHT 6ypr (HHAeiccssp) xaHAax xyrauaaI vuo/t 6atiHa. T s b h M accH BH H 3apnM H 3r A yT a rA a jrra ii TanyyafeiH y jiM aac
111 Hit a u m n ia x a A X H 3raap jia jiT ra p A a r . T y x a iu i6 a ji M acCH B U H X3m>k33
MaCCUB Hb H3T 3CB3JI OJIOH X3M5K33CT3M 6afaC Gojiho', 3 H 3 h o m o h a MaccMBbiH X3M3K33C 6a X3MDIC93 T3C3H xoep HJiraaTaii xs ju isr auiMrJiarAax (>OJlHO. X3M5K33C HL MaCCMBblH 3JieMeHT3A XM4H33H HHAeKC33p XaHAaXLir TOAOpXOHJIAOr 6oJI X3M>K33 Hb M a c c H B H H HHHT SJieMeHTHHH TOOT UJ13PXHHJIH3. )KHUI33Jl63JI a In] MaCCllB HL n X3M2K33T3H H3r X3M2C33C NtaCCHB 6oJI a [n] [m] MaCCHB Hb nxm X3M2K33T3H XOep X3M)K33CT MaCGMB IOM.
HllA X3Cr33C 3XJI3H MaCCHBblT C++ X3JI3HA X3pX3H TOAOpXOHJIOXbir aBH fl l lt >3C. H 3 r X3M3K33CT MaCCHBblT UiyraMaH MaCCHB, 3apHMAaa BeKTOp H T32K R ip jl JA3r. H s r X3M3K33CT MaCCHBblH epeHXHH 3apjiajrr Hb A oop x X3JI63PT3H llH iia .
, j va r_n am e [ s i z e ] ;
HycnA xyBbcarHAbiH 3apjiajLTbiH aAHJi, KonHJMTop Hb j\ 3 3 p x 3apjia;iTaap MACCHBT caHax o n ro o c 3aH H00UJI0H aBAar. t y p e Hb MaCCHBblH T0p0JI 6a s i z e mi. MaccHBT xaAarajiarAax h h h t 3JieMeHTHHH t o o iom. C + + X3JI3HA MaccHBbiH MMACKC T3T33C 3X3JIA3r. MHMA
int ro[10];
i k ■ )H apBaH 3JieMeHT 6yXHH m MaCCHBblH 3JieMeHTYYA3A m [0 ] -33C m[ 9 ] T33K tu iiAax G ojih o .
H »r X3M>K33CT MaccwBbiH 3JieMeHTYYA Hb HHACKCHHHX33 Aapaaju iaap caHax nlUt A3C AapaaJicaH YYPYYA3A Saiip jiaAar. )KniU33Ji63Ji Aapaax a MaccHB Hb <.max o h h 1000 T3C3H xaaraac 3XJi3A3r tsb sji:
< har a l 5 ] ;
>ii3 MaccHB caHax o h a Aapaax 6aiiAJiaap 6aftpJiax 6ojiho.
)JieMeHT: a [0 ] a [ l ] a [2 ] a [3 ] a [4 ]Xaar: 1 0 0 0 1 0 0 1 1 0 0 2 1 0 0 3 10 0 4
(J}VhkH3zi aaM xyyjiaxaaa ty y h h h xanrH iir 6y ioy HspHHr aaMacyyjiaar. >Khm33;i63ji aapaax nporpaMMHH xscsrr m MaccHBbir fu n d ( ) ctyHKipa X3pX3H iiaMxyyjiax ysyY-71133-
m a in ( ) { i n t m [ 1Q ] ; f u n d (fn) /
XapHH yr MaccHBbir fu n d ( ) 4>yHKii;3a x y a s s x aBaxaaa aapaax rypBaH X3Jl63pHHH H3THHT X3p3rJI3>K 60JIH0 .
fu n d ( in t *p ) { , // 3aar4aap
i , || W * ;
3CB3JI
fu n d ( in t p [10J ) { // X3M5K33 Hb Toaopxow MaCCHBaap
} S
3CB3JI
fu n d ( in t p [ ] ) { // X3ADK33 Hb TOaopXOHryH MacCHBaap
C + + xsjihhh T3M;i3iT MopHiir char Tepo n 6yxhh H3r xsmhcssct MaccHBaap WJT3pXHHJTiI3r. 3H3 TY\aH 6lAH TycraHJiaH \33X 6ojiho.
In » x jcrssp 6 h a C++ X3JIHHH H3r 4yxaji oHJiroJiT 6 o jio x 3aariiTan TaHMJinax w»;iiio. 3aarHHHH xspsnias Hb nporpaMMaac caHax oh h xyBaapHJiajiTbir rnyyA v;i up/lax 6oJioMXHHr nporpaMM 30XH0r4HA o jiroAor. TyxaHJi6a.Ji 3aar4 •u m n iaH X3M>K33 Hb AHHaMHKaap eep4JierAe:»c 4aAax MaccHB 3 ox h oh cuihyyjDK 6 o jih o . M o h xo jiG oo ct GyniYYA 6o jio x acarcaajrr, Aapaajiaji, ctck , mh;i uspsr ererAHHHH GynxYYAHHr xaji6apxaH h sb tp yy jis x 6 o jih o . 3aar4 Hb mi m xyHHpxsr xspsrcjiHHH 33p3ru[33 Mam o c o jito h 3yhji iom. Xsp3B 3aar4MMr fiy pyy auiHrjiaBaji TaHH ch ctcm cyHpsx 4 a ioyjraH rsArMHr caHax xspsrren. MiIm33c C++ x s jih h h TypnuiaraTaH nporpaMM 30XH0r4 yy scbs ji s x jish t vpajiijar4 yy rsATHHr 3aar4 xspxsH auiHmacHaap 4 to a op xo h jd k 6 o jio x iom.
K ( >m nbioTep ererAJiHHr caHax ohh ajib Hsr xscsrr xaArajiAar. KoMnbioTepiiMH 1 .max oh Hb GainyyAHH A3C AapaajicaH YYPYYA33C TorTAor 6a YYP (6a£iT) 6yp 111. xaarraH. 3aarn Hb caHax ohh xaar aryyjiax (xaarraH a^KHJUiax) xyBbcarn »om. G ep eep xsjiGsji 3aar4HHH yrra Hb caHax ohh xaar 6aHHa. Mhmssc xaaraap AaMacyyjiaH y r x a a rr xapra;i3ax YYPHHH ererAejiTSH aacHJiJiaxftojIOMXTOH.
IiycaA epAHHH xyBbcar4HHH aAHJi 3aar4HHr 3apjiaxAaa TepjiMHr to ao pxoh jio x
47
Byjida 5
maapAJiaraTaii. SapjiaJiTMH epoHXHH X3Ji63p hb:
type *name;
6aHHa. 3aariiHHH Tepejr hb a Map TopJinftH xyBbcarn 3aa>K qaAaxwr TOAopxoHJiAor. Ep Hb AMap h Tepjmmi 3aar4aap caHax ohh ajib li 6aiipjiajibir saajirax 6ojiom ctoh 6ojiob^ 3aarHHA xhhx apH4>MeTHK yhjia3-JI Hb tyyhhh Tepjieec xaMaapq XHiirAA3r.
P = &i;cout « "value of i is « *p « endl;P = & j ;cout << "value of j is : " « *p << endl;
,fl(33px in t *p; 3apjiajiTaap 6yx3Ji tooh TepejiT3H p 3aarH toaopxohjiotaoho. 3 hs 3apjiajiTbiH Aapaa p Hb loy li 3aaxryH 6a 5.2-p 3ypraap aypcjish y3yyjibe.
& onepaTopbir xyBbcariiMHH xanr aBax onepaTop rsAsr. p = & i ; yHJiAJi33p i xyBbcarHHHH xaanmr p aryyjrax 6ojtho. YymiHr p 3aarq i xyBbcarqHHr 3aaac 6aima r3x 6a 5.3 3yparr Y3yyjicH33p AYPC3JDK 6ojtho.
3ha oaoo i —h h h yiTa Hb 1, p —h h h yrra Hb & i ( i —h h h xanr) 6atoa .
3aar*iHHH *p 6HliJi3rHHH X3Ji63p Hb p 3aarHHHH 3aax caHax oh h 6aHpjiajiA aryyjiarAax yrrbir h jiitsh s . M hm ssc cout « *p; yHJiAJissp i xyBbdar«iHHH yrrbir X3BJI3X 6ojiho.
XapHHp = &j; yhjiaji33P p 3aarn: caHax o t o eep 6anpjiaji 6yioy j-HHr 3aax 6ojiho. 3 h 3 yfijiAJiHHr 5.4-p 3ypraap ysyyjuiss.
;i > jpx KoauH xacrasp 3aar4HHH yrra 6ojioh 3aar4HtiH 3aax 6aHpjiaji aaxb yn yyaaa xHHraax y h jw ih h h HJiraar xap>K 6ojiho. *p = |g 6a *q = 2; y tUi;yiYYA33P p , q 3aar4yynbiH 3aax 6aHpjiajia 6y ioy i , j xyB bcarw a xapraji3aH I 6a 2 T3C3H y jryya ojiroHo. Sareap YHJwraiir 5.5-p sypraap Y3YYJIJI33.
3h3 hombih hxshx nporpaMMyyA hb YHAC3HA33 o 6i>eKT, tyyhhh 3aarirraH a KHJTJiax 6ojiho.
52
Maccue 6a 3aazn
I t * * h u u h o p e y M e n m a a p 3 a a e n d a M J te y y / ia x
I # i »/i11nii 3aaniHHHHartojixspsniss6oji<|>yHKijHHHapryMeHTaAauraniax m %>m;i 6ha 3aapmMr(J)yHKU,HHH apryMeHTaAaiHHDiax Gojicoh maap/yiarbrr * l » nym.carqMHH y n u r cojihx swap () 4>yHKU33p TaHJi6apjiaa.
n r )A * wap () 4>yhku3A y tm a a p apryMeHT AawoKyyjiax xyBHJi6apbir &B*i y3Be.
|| pm in () {/», b;
'§ - 3; b = 9;*»•!•(.», b) I
»i«f «wap(int p, int q) { ftni temp; I* t •mp «= p; . ,P * q ; •' :>v ^H m i€X «-+3<1 - temp; w o e ’ ' M Im I ahm/ \mnu vv irY Y T ec>'./m!:f<)
) (J)yHKu,3A a, b xyBbcar^flbiH y r r a r AaM^cyyjicHaap y r 4>yHKU TSArssp i yy/iw r xa^rajiax JioKaji xyBBcar^ABir yYcr3A3r. p 6a q xyBbcarHHA h l swap ()
>> unite JioKaii xyBBcar^HA iom.
I » lOXHOJIflOJI# swapO 4>yHKUHilH p, q JIOKa/I xyBBCarHHA HB main ( ) riiMiHHH a, b xyBBcarHHflTaH xapraji3aH a^HJi yTraTaii 6ojiho. swapO> m k i o a temp xyBBcarHHHr amnrJiaH yrryyABir xoopoHA cojibchoop 30BX6Hi \ viu,carMABiH yrra com rAOHo. swap () (JjyHKU a>KiiJUiaaAAyycaxaA tyyh hh % MOKa/i xyBBcar^HA caHax o iiro o c mrceejierAOHe. IiHr3CH33p yrryyABir ■«<>mix ecTOH main ( ) (J>yHKH,HHH a, b xyBBcarHABiH yrraA HMap H e ep ’UieJIT
HiA'ixryft.
IIM n c swap () 4>yHKU3A XHHC3H eep^JIGJITHHr main ( ) <J)yHKU3A aBaXBIH •i;i f>nA 3aarn am nm aH a, b xyBBcaniABiH xaarHHr apryMeHTaap AaM>tcyyjiax n>n. MHr3CH33p swap ( ) 4>yHKiJYY£3A TOAopxoHJiorAcoH p, q 3aar<iHA HB i. xyBbcar^ABiH yrryyA xaArajiarAax caHax oh h 6aHpjiajiA myyA xaHAax
i/1 no. ' j ; . ^ •
in(| { in t a, b ; a - 3; b = 9;-wap(&a, & b );
Id sw a p (in t *p , in t *q ) {
53
ByASb 5
in t temp; temp = * p ;*p *q ;*q = temp; .
)
U sa p x nporpaMMbiH swap ( } 4>yHKmiftH p, q apryMeHTyyflbiH yrra hb xapraji3aH a, b xyBLcarn^tiH xa»ryym>ir aBHa. X sflH ito sp swap () (JjyHKU, axHJiJiaan jyycaxaa p, q jioKaji xyBbcar^HA caHax onrooc qejieejierflex 6ojiobh main () (JjyHKUPiHH a, b xyBbcarHHA yrraa ajib xsjochhh cojihjiucoh 6aima.
3aarn 6a MaccHB
C++X3JEHHM 3aarn 6a MaccHB Hb Main HapHHH xo ji6 oo toh . T 3AT33phhh 3apHM 6wiiJi3rpfHH X3ji6sp Hb xapHJiiiaH 6neH33 opjiocoH, xapaxa# 6yaHJiaxaap Ganxiar. C++ x s jih h h 3H3 oHLyior hb 6yca# xs jish a 6aH£arryH 6eree£ Ta rrporpaMM 6hhhxa33 t y y h s s c 3aHJic xh idk 6 o jio x iom. T s c s h xsah h h bjj& k 6ycAbiH 6 hhc3h nporpaMMbir oHJiro^or 6awx x3p3rT3H iom . Aapaax nporpaM M bir aB*i y3be.
in t a [ ] ?= { 0, 1, 2 , B , 4 } ; m ain () {
in t i , * p ;
fo r ( i - 0 ; . i< = 4 ; i+ + ) cout << a [ i ] <<" " ;cout << e n d l ;
fo r ( p= &a [ 0 ] ; p<?=&a [4 ] ; p++) cout << *p << " cout « e n d l ;f o r ( p= & a[0 ] , i = 0 ; i< = 4 ; i+ + ) cout << p [ i ] << " " ;cout << e n d l ;
f o r (p = a , i = 0 ; p + i< = a + 4 ; i + + ) •cout « * (p + i ) << ” " ;cout « e n d l ;
fo r (p = a + 4 ; p>=a ; p - - ) cout << *p << • " ;coiit << end l ;
fo r (p = a + 4 , i= 0 ; i< = 4 ; i+ + ) cout << p [ - i ] << " %;cout << e n d l ;
fo r (p = a + 4 ; p>=a ; p - - ) cout << a [p - a ] << w " ; cout << endl|
54
Maccue 6a 3aaen
*4|t\ n p o rp a M M U H xaM rH H H s x h h h A aB Tajrr H b M accH B biH e T a i ia a p r
m n ‘i )i )i3 3 r au iH m acaH SafiH a. Y y h h h yp ayh aM accH B b iH 3J ieM ehtyyahh i
\ »p j b p 3aarM Hb a [ i ] sjieM eH TH H r 3aaK 6aiiBaji:
( l ) p+l Hb a [ i+ i ] -H H r 3aaHa.U ) p -3 Hb a t i - 3 ]-H H r 3aaHa.1 1 ) p++ YHJUOUissp p 3aarn MaccHBbiH aapaaHHHH sjieMeHTHiir 3aaHa. u ) p = p + 3 yhjuuis3Pp 3aar4 Hb TyxaHH 3aax6aHraasjieMeHTssc xoh u i
M o h a [ i ] sjieM eHTHhh yTTbir * (p + i ) rs>K MJispxHHJisxwiir itsspx itporpaMMaac xapcaH 6awx. 3 h s yea p 3aar4 Hb MaccHBbiH sxjisiiMiir 3aax 6a xaajiTaH flaxb p + i Hb MaccHBMH i a y rssp sjieMeHTHitr 3aaHa. X spsB 6wx xaajiTur opxHBOJi, e ep eep xsji6sji *p + i rsac 6h4bsji sh s Hb MaccHBbiH sxhhh
// r Hb i XyBLCaFIHHH T0JI00JIC0H H3p // x = 1;// i * 2;
56
Maccue 6a 3aa2ii
l tyi orrorflex mhccub
i *i » x j c s it 3aar4 am nrjiaH xyBbcax x s m x s s t s h MaccHB xspxsH soxhoh iM iyyJ iaxb ir Y3YYJIbe- MaccHBbir erer/uiMMH x h h c b sp Tepeji loiacc auiHDiaH UMiopxoHJiox SereeA 3H3 y^a c+ + -m m flapaax oHJirojiryy# RpMr^ax 6o;ih o .
Yyiui
t MaccHBHH HHAeKCHHH T3MA3rJI3F33r flaXHH TOAOpXOHJIOX• ycrrarq 4>yHKU33p xaHrax
I I.iccur HSBTpYY^XHHH 0MH0 C++-TTOAOpXOHJIOrACOH CTaH#apT MaccHBHH miiiiok 'laH apur 3pr3H caHauraaa. C++ xs jihhh MaccHB Hb [ ] x a a jn w •in h i JiaH HHAeKC33p xanmax egkhji TepjiiiHH erorfljryYAHHH uyBaa 6hji33. C++ mii ii MaccHBT Aapaax xoep yh acsh .ayTarflan 6hh ; (1 ) T3p33p TorrM pji
% »M/K33T3HI33pTOflOpXOIUlOrMOr, (2 ) M0H [ ] XaaJITaHfl, 6HMHT43X MaCCHBblH nii/ickchhh y r r n r (xH 3raapnr) uiajira^arryH. H hm ssc nporpaMM 6mmmx iHuaA nporpaMM 3oxH ornooc m bcchbhh HHneKcniiH xa3raapbir 6aftHra iMiia)K 6aibc m aapwiara rapaar.
K/iaccHH Hspnftr i a rray T3B3JI yr KJiaccHH 3apjiajiTaA Aapaax rnuiYYH «|)ymcuYYAHHr toaopxohjdk 6ojiho.
» l a s s Iarray { int *a, len;
public: 1Ia rray (in t length );~ Iarray ( ) ;int& operator[ ] (in t n ) ; int s ize ( ) ;void re s iz e (in t length ); void p r in t ( ) ;
I ;
iarray KJiacc Hb MaccHBbir flHHaMHKaap yvcrsx a 3aar4 6ojtoh MaccHBbiH X3M>K33r toaopxohjiox le n 6yx3Ji tooh xyBbcapmiir aryyjDK 6aHHa. Baftryyjiarn cfcyHKU Hb apryMeHTaapaa MaccHBHH xsMacssr aBii, new onepaTopbiH TycjiaMaeraHraap AHHaMHK oiirooc 3aii hooujioh a MaccHBbir To^opxoHJioH YYcrsx, MaccHBHH 6yx 3JieMeHTHHH aHXHbi yrraap TsrnHr
57
Eyjaa 5
ojiroHo. Eatiryyjiarn (JjyHKiiHHH k o au f .aoop y3YY-'BI33.
I a r r a y : : I a r r a y ( in t len g th ) { len m len g th ; a = new i n t [ l e n ] ;for (int i=>0; iclen; i++) a [ i ] * 0;
(
0MH6X xacraac 6h& 3aarir 6a MaccHB Hb aMap xoji6ootoh, xspx3H 6h6H33 Tejieejiac la jja xL ir yacsH 6hji33. M accH BH r new onepaTop aumrJiaH AHHaMHKaap yycrscHssp TyyiniH xsM xssr flaxHH eep^jiex 6ojtom>kto{i 6qjiho. YyHHttr r e s iz e () 4>yHKHHiiH Koflooc xapax 6ojiho.
3hA - Ia r r a y () 4>yHKHT3H X0/l60 r,ayyJiaH ycTrarM (JiyHKUHHH TaJiaap H3MX Toflpyyji'bfl. KiraccbiH ycrra rn cfjyHKH Hb o 6 ie ic r t ir Myxcaac rapaxa# aBTOMaTaap Ayyaaranaxaac ra^Ha xspsrjisra d e le t e oneparopbir aiiMrJiaH o6T>eKTbir ycTrax ye,n msh flyynanwar. EpeHXHit TOXHonfloJW KJiacc 6ojiroH yc T ra r 'i (J>yHKUHHr aryyjiax uiaapfljiararyii 6afiflar. 3apHM ToxHojmo-M npoipaMMUH axcHJiJiaraar majirax 3opHJiroop xaaHa aMap o6i>ekT ycrrax 6afiraar ycrrarH <J)yHKH33c aMap H3r M3fl33Ji3Ji xsbjisx 6alwnaap ycrrarH 4>yHKUHiir am nrjiaflar. XapHH KJiacc Hb eepHHH th u iyyh erer/ymftr OTHaMHKaap caHax o y y c r e x toxmojiaojiq ycTrari 4>yHKH Hb 3aftJiuiryii X3p3rT3ft IOM. Jl,33px KJiaCCblH yCTTaTH (JtyHKH Hb YYHHH H3r TOfl XHHI33 6ojiho. YcTrarn (JiyHKHMiiH Ko^bir floop ysyyjuiss.
iarray: : ~Iarray( ) (d e le t e [le ft ] a; // d e le t e [ ] a;
> ' ■ p
delete onepaTOpT MaccHBbiH 3JieMeHTHHH Toor (x3M)tc33r) [ ] xaajrraHn; toflopxoHJDK arfler. 3h/i erex to o Hb MaccHBHH x3mjk33T3H a r tsh h yy 6aftx ecToft. XspsB T3Huyy 6hhi 6ojt C++ TYYHHlir martraxryH 6a nporpaMM aatHJtJiax HBiiaa ajiflaaH^ xYpaxH iir aHxaapax X 3p3rr3 ii. 3apHM KoMnHJitfTopMH xyBbfl [ ] xaanraH flaxb y r r a r TOflopxoHJmox inaapflnararyH Sereefl KOMmiiistTOp Mb yr xyB&caMHfl Heeyjierflcen 3aftr m sa s* 6afiwar.
ia r ra y KJtacciJH eep Bar omyror 6oji o p era to r [ ] ( ) rHmyyH <J>yHKH iom. C++ -T M3CCHBHH HH/teKCHHH [ ] XaaJITbir KJiaCCT flaXHH TOflOpXOttjICHOOp KJiaccblH 06beKT0 fl [ ] xaaJixbiH TycjiaMXTafiraap MaccHBHH H3r aflHJi HH^eKC33p XaHflaX 60JIH0 . 3(Hm33Jl63^ I a r r a y KJiaccblH a o6beKTbir 3apjiacHaap o6beKTbiH MaccHBHH 3JieMeHT3/i xaHflaxaaa [ ] xaajrrbtr HH^eKCHHH xaMT o6beKTOA Aoopx 6att;yiaap uiyyfl xspsrasks.
Iarray a (6); a [2] = 5;
58
Maccue 6a 3aain
• « 1 2 1 ;
It I ) ( ) (|>yHKH Hb MaCCHBHH i flYr33P 3JieMeHT3fl XaHflaXHH 0MH9 Mnuit HHfleKCHHr XH3raapaac x3T3pc3H scsxH iir majiraHa. OyHKJiHHH
Ml HOOP Y3YYJIJI33.
I I n t r a y : : o p e r a t o r [ ] ( i n t i ) {It I 1<0 |I i>= len ) {
cout « "Er ro r : " « i« " subscrip t is out o f bounds.\n";
r x i t ( - l ) ;
Iolurn a [ i ] ;
i i mluyyh 4>yHKH Hb MaccHBHH X3M5K33 Sojiox len xyBbcarHHHH yrrbir Urtitna. OyHHKHHH KOflbir floop ysYY^33-
tt larray: : s i z e () {1 olurn len ;
hi A MaccHBHH X3MX33r eepHJieX resize () 4>yHKHHHr aB4 X3JI3Jmbe. 3 h 3 it ''.iliryy jiam (J)yHKU,HHH amui new onepaTopbiH xycjiaMXTaftraap e reraceH •Nil ) X3M3K33r33p AHHaMHK Oftfl 3aft H60UJ10H 1HHH3 MaCCHBblT YYcr3H3- Ul>iia nb xyyMHH MaccHBHH sjieMeHTHHH yrryyflb ir ihhhs MaccHBT xyym a . H >11 >11 XyyHHH MaccHBbiH X3M2C33 UIHH33C33 6 ara 6 0JI 6 yx SJieMeHTHHr• > v >t»an uiHH3 MaccHBHH yjiflcsH 3JieMeHT3fl xsr y rra cwiroHo. XspsB xyyHHH
1 uiibiH X3M*33 h x 6o.rc ty yh h h HJiyYflSJi sJieMeHTYYA xacarflax Sojiho. 1u »ct iib x y y n m MaccHBT au tH raax 6aftcaH 3aftr caHax o ftrooc delete •MH-paTopoop SQJteo^tex Gojiho. OyHKHHHH KOflbir «o o p y3YYJM33-
* ’i«l Iar ray:: resize (in t length) ( i£( len = length) return; int newleh = length;Int *newa = new int[new len ];int rain = (newlen < len) ? newlen : len;for ( int i=0; icmin; i++) newa[i] = a [ i ] ;tor(i=min; i<newlen; i++) newa[i ] = 0;delete [len ] a; // delete [] a;a = newa;len = newlen;
|M u *v > »\'-i\ii 5 a iip jiy y jia x S o J iO M xy y f lu r o jio x iom . B ap c Hb eepHHH < M*tp, OaraHa 6o jiohA H a roH am yA H H HMapn 6 a iip jia jw 6yycaH Heree
ua >x io m . BapcHHH HYYftJiHHH xejiH ftr 5.10.a) - p 3ypraap Y3Yyrui33. KpMn\i \ j ’iG jji Gape 6ypnw r 6ycaA SapcH im xq jia epxexeep ry ii 6a iip ;iyy jiax p i | O 'ipcuttr HA3Jm3X33pryHr33p uiaTpHH x e jie rr 92 HH3biH 6oaomdkoop
m } * * UyciiA 80 S o jioM xyyA Hb uiaTpbm xe jirn ftr x sb tsb , 6 o co o 6oaoh
^2n>m.i.inviu>iH xyBbfl to j ih h xyBHpraAT xwifaoA (scb sa xeArH im tob h h h
M m Vo, 1 HO, 270 rpaAycaap sp ryyjisxsA ) omhbx 12 Soaondkhhh ajib h b its hHMM0 IUiar.
lOXWOJWOJIA n GspCHHT nxn X3M5K33T XeJITOH fl33p HA3JIU3X33prYH i . \ \.ix 6oflAoro 6ojitoh e p r o T r e * 6ojiho. TyxaHJi6ajr n = l , 2, 3, ...,15
K u .1 \upraji3aH l , 0, 0, 2, 10, 4, 40, 92, 352, 724, 2680, 14200, 73712, ^ P lV M > , 2279184 tscsh SoJtoMxyyn, Tyc Tyc ojiaoho .
p i (Vijuiorbir 6o a o x war aJiropHTMTaft TaHHJiu,T>a.
tt ■ Mill HUlTpblHX0JieraHH 3XHHH MQpOSC 3XJI3H 33JDKAapaaJiaH AapaaqHHH w \ i nii ii 6ojioM acroH 6attpJiajiyyAaA Safip jiyyjiax 6aft,nyiaap xh h h s. X 3p 3 B
> ntii M opeH fl 6 a iip jiy y jia x 6o jio m jk tyh 6o ji6o ji 6yu,aac s m h sx MepHHH nUi e e p 6ojiom >kht 6aftp jia jifl ihh jdkyyji3h m ajira jiTbir ypraJOKJiyyJiaH
* * o u • '')H 3 m stm jish M ep 6\pH H H h y a SoJiroH W xyBbA AapaaHHHH I. > itvvJUiiiH6yxOafipnaJibir manraHa. K hm TepJiH ita :6oA A oru rp eK yp cssp w*ni \nj16apxaH u ih h a s x 6o jiflo r . B sp cH iiii 6yyx TyxaiiH h yah h h xyBbA
a [ i ] = i ; a.print ( j ;cout << "s ize of a is "<< a .s izeO « endl; a . res ize (5 ); a.print 0 ; a [31 = 3; a[4 ] - 4 ;// a [5) = 5; 3 h3 MepHiir opyyji6aji ajmaa rapax 6ojiho.a .p r in t ( ) ; a. resize (2 ) .; a .p r in t ( ) ;
MaccHBbiH xaparjiaa
KoMiibioTepbiH nporpaMMMJiaJifl MaccuB Hb qyxan yypsr ryiiHaTrex yhacsh ereraroiftH Sytuyyahhh H3r 6ojioxbir 6 ct/i ms/ihs. MaccHBbiH xapsnias 6a MaccuB amwrjiaff uihhasx 6o/uioryy/i acap o jio h iom. XapHH 6 na 3 H3 xscsrT MaccHBbiH X3psrJI33 SoJITOH UIHA3T K B a flp a T 6 a HaHMaH 6 3 P C H H H 6ojiJiori>ir as1! Y3be. M e n homhh 6ycaa 6YJirYYA33c MaccHBHH xsparjias x h ih ssh lyx&Ji YYparrsH 6ojioxbir xapax 6ojiho.
3 x H H H X H U I3 3 r3 3 p 6 hA KOMnblOTepblH 6 0 JI0 H MaTCMaTHKblH H3r c o n [ipxoirroH 6 o iu io ro 6 o j i o x HaiiMaH GapcHHH 6o,zuiorbir aBH Y3be. 3 h s 6ozu iorb iH 3opH J iro Hb uiaTpbiH x ea reH A aaap naftMaH 6 apcH ftr
60
Byme 5
3 h 3 ajiropHTMbir xspsnKYY-’i3 * # 3 3 8x 8 ts c s h xoep xsm xssct MaccHB aiimrjia>K 6ojiox iom. XapHH 3 im 6na 8 sJieMeHT 6yxhh Beiaop (ro r xsmjkssct MaccHB) aumrjiax Gojiho. 9 h 3 BeKToptiH HimeKc hb uiaTpbiH xanenuiH MepHHr, BeKTopHH 3JieMeHTHHH yrra hb 6spc 6aftpjiax marpbiH xejierHHH 6 araHbir Tyc Tyc hjispxhhjisx 6ojiho. Y yh h h t 5.11 -p 3ypraap Y3Y\nn33-
1 2 3 4 5 6 7 81 m 12 # i ----- ► 53 # 84 m 65 * 36 m 77 # 28 • 4
3 y p a r 5 .11 . lilaTpb iH x e n rw iir B eK Top oop unapxM finax
ZI,33pxBeKTopwH sJieMeHTYYfl3^ 1 , 2 ,..., 8 yrryynwr jiaBTar/iaxryHrsBp caJireH or 6X0/1 rapax h h h t 8! = 40320 6ojiom xooc 6h/ihmh HexuuiHiir xaHrax 36BxeH 92 60JI0M5K OJtgoHO.
3 h s ajiropHTMaap 6hhc3h C++ nporpaMMbir floop Y3YYJIJI33- c ++ xbjihhh MaccHBHH HHfleKC Hb T3r33C 3X3JI^3T y ’lHp 3H3 60flJI0rHH HeXIieJIT3H HJiHXryn xapmjiax iom. 0 e p e e p X3JI63JI 6HJIHHH aBax BeKTopbiH 0 HHaeicc Hb HiaTptiH xejierH H H 1-p M epeH fl xapra ;i3ax 6o jih o . 9 h 3 30p>uiHHr nporpaMMaaa Hsr yrra iraMJK/xacax ern loxm iyy jiax Hb XHJiSap S o jiob i nporpaMMbir ymnHniium ohjitom )ktoh 6aiijirax yyjihssc 3H3 3oxHuyyjiajrn>ir XHHJirYH opxHe. MHrscirssp SatipjiyyjiBaji 3oxhx h h h t 6spcHHft to oh o oc H3r33p HJIYY X3M * 33T3tt BCKTOp 3apjiaH, 3XHHft 6y ioy 0 HHfleKCTSH SJieMeHTHitr auiHrnaxrYM 6aiix 6ojiho. Tyxaftji6aji 8 63pcnim xyBbA x [ 9 ] rscsH BeKTop 3apjiaH, x [ i ] , ... , x [ 8] 3JieMeHTyyziHHr amnrjiaHa. Mhm/i VHUiHr'i Ta 3H3 nporpaMMbir 10 SspcnftH xyuwi asKHJHiyyJiax yeflss BeicropbiH X3M)K33r 11 ra x oep ’ iJien 3apnax ecTofi.
♦include <iostrearn. h>♦include <stdlib.h> i n t :<[9] ;
void Print {int n ). {static int solution = 0 ;cout « "\nsolutiori =■ " << ++solution « endl; for (int i= l ; i<=n; i++) (
for (int j= l ; j<-=n; }++)i f (x [ i ] mt j ) cout « " Q";
Maccue 6a 3aaen
r COUt « "• '\ t * « x [ i ] « e n d l ;
• c k U n t k , i n t i) (
iV n l } “ 1* 3 < k ; j + + )I j ) == i ) // Two i n t h e same co lu m n
, l.\bs = = a b s ( j - k ) ) ) // o r i n t h e same d ia g o n a l
l i t u r n ( f a l s e ) ; u n i t r u e ) ;
Q M * «n s ( in t k , i n t n ) {I U n t i = l ; i< = n ; i + + ) t I t (C h e c k (k , i ) ) {
= i ;i t (k==n ) P r i n t ( n ) ;«-\se Queens (k+1 , n ) ;
nt M 'n d I v " « « 'n s ( 1 , 8 ) ;
,V ■ >\>\ uporpaMM Hb 8 SapcHitr rnaxpMH (8x8) xenreHA Hflajmsxaspryii t,.i*>\oiyyJiHa. X ap sB aypbra n 63pcHHH 6 aiipjiajiyyAHr ojioxbir xycBSJi
amwraax BeKTopur x [n + l ] raac 3apjxax 6a m ain () 4>yHKiX33c .’un u,n> raxnyyjiHa.
j . im i is o 4>yHKU, H b ap ryM eH T a a p a a 6 -ape 6 y y x M ep n ttH a y r a a p 6 a h h h t r, >\h 11 v\ v\ Toor aBHa. T y x a ftH k a y ra a p m bphm h i a y ra a p 6araHana 6 y y »c 6 ojiox
.v u iir c h e c k o u ia n ra H a .X s p s B T yxa ftH M epH H tt TyxattH 6 a iip jia jmr.NN *. 'la ftB a ji H .apaa'iHHH M ep w ftr Queens ( k + i, n) r 3 * p eK yp c am m via H
M.'ens o 4>yHKu X3 3 3 3 6yx M e p e H f l 6 3pcyYHHHr 6atipjiyyjDK naflHa Tap yen ti i\ Gojiomsk. ojwox Sereeft tyyhhht Print () tjiyHKUHHH TycjiaMiKTaiiraapv )U3X IOM.
63
Maccue 6a 3aaznf o r ( j = 0 ; j< n ; j+ + )
i f ( x [ i ] == j ) cou t « " Q"; e ls e cout «
cout « en d l;
»*l<l s e e k fin t i ) { int j ;fo i ( j= 0 ; j< n ; J++)
i f ( a [ j ] s& b [ i + j ] S& c [ i - j + n - l ] ) ( x [ i ] - -j;'
i f ( i < n - 1 ) (a [ j ] = b [ i + j ] “ c [ i - j + n - l ] = 0 ; seek ( i + 1 ) ;a [ j ] = b [ i + j ] = c [ i - j + n - l j = 1 ;
} e ls e fou n d ( ) ;
• l<l m ain() {Int 1 ;fin ( i= 0 ; i< n ; i+ + ) a [ i ] = 1 ;lo t ( i= 0 ; i< 2 * n - l ; i+ + ) b f i ] = 1 ; f<>i ( i = 0 ; i< 2 * n - l ; i+ + ) c [ i ] = 1 ;• - rk (O );
|*-*px 11porpaMMHH s e e k o (JjyHKU hb i , j ( i Map, j 6araHa) HYASHfl 6apc h x OonoxHr a, b, c BeioppyyauH xapran3ax aneMeHTYYUHHH yrraap i , j
i >(• mi ,1 [ j ] ajieMeHTHHH y rra 0 Son j a y rs sp 6araHWH ajib H3r 6aHpjiarm ■p (V>pc 6aiiHa T3C3H yt. X sp sB b [ i+ j ] 3JieMeHTHHH y rra 0 6oji i , j H ynn iir *«|h an xaxyy iH H H .uiiaroHaJiHHH aJi& H3r HYflSHfl eep 6spc SaiiHa recsH i X ipjB c [ i - j + n - l ] 3JieMeHTHHH y rra 0 Son i , j h yah Mr aaftpcaH ran pMoiuuiHHH am. H sr Hyfl3Hfl eop 6spc SailHa rscaH yr.
•mu i n j-jpx rypBaH 3JieMeHTHimyrryyn6yra 1 (yH3H) 6attxyefl i , j HyilSH/i top fiaiipayyjiaH manrajm .ir peKypc ainm/ian ypraJEKJiYY^x 6ojiho. 3h3 (»m p.iMMA marpbiH xeJCTHHr typyy^hhh nporpaMMHH amui x [n] Beicropoop A m''mH;i3x 6a 0 hhhckcmhh aJieMeHTHiir amnrjiax Sojiho.
a BeKTOpblH X3M5K33 Hb SaraHH TOO n-33p, b 6a c BeKTOpyyflblH X3MX33 Hb xaxyyrMHH 6a to ji flHaroHaimy/ibiH to o 2 * n - i—sap Tyc rye TOflopxofoiornoHo. 9 x ((h h to jio b 6 y ioy o n 6 spc TaBMrflaaryii yeji s^ rsap BeKTopyy/ibiH 3JieMeiiTYYHHftH yrra 6yrA 1 (yh 3 h ) 6aiix 6ojiho. XapHH 5.12 —p 3yparr xaMraitH axHHii HYflsnn Har 6 spc TaBHTflcaH y ra p TycJiax rypBaH BeKTopuH a [0 ], b [0 ], c£7] yTraTarT3itxaHuyy6aiiHa.
#include <iostream.h> tdefine n 8int a [n ], b [2 *n - l ] , c [2 * n - l ] , x fn ];
void found(void) { int i , j ;static solution = 0 ;cout « "\nsolution = " « ++solution « endl; fo r (i= 0; i<n; i++) { ■
64
0 1 2 3 4 5 6 7
> [Q|1|1|1|1|1|1|1|
•
s
II
I
M i a i
#ggf IV
ft J
Maccue 6a 3aaznI > i h tpx (2) aJixaMur n yAaa 6y ioy aHX sxsjicsh 6 aflpjxan xyp re jiaaBTaHa. <1 J lap aan o iH T o o r TyxaiiH 6 araHaHfl hb H sr M ep flo o m u ih jix h h
ftmipjiyyncHH aapaa (2) anxMHr flaBTana.
17 1 8 15 17 24 1 8 15
5 7 14 16 23 5 7 14 16
4 6 13 20 4 6 13 20 22
10 12 19 *■>O 10 12 19 21 3
11 18 2 9 11 18 25 2 9
3ypar 5.14. M accuBT ajieMeHTYYflniir 6aPipnyynax h bij 6ohoh 6aiipnyyncHbi fla p a a x 6aiiflan
11 -p 3 y p ra a p n = 5 Ye # 3JieM eH TYYflH H r S a ftp ^ y y jia x h b h 6 o jio h bM pnyy;icHH flapaax MaccHBHH TejiBM iir Y3YY™ 33-
11 K iia flp a ra r 5.15 —p 3yparr y3YYJicH33p eceH M y x iifl xyBaaHa.
k
k
3 y p a r 5.15. n=4k ye fl MaccMBbir 9 My>KMfl xyBaaHa.
) K »aflpaTUH 3YYH flssfl hyahssc 3XA3H M e p e e p hya 6ypT 1 — n 2 yrryy fln r o cex flapaajuiaap hb ohooxaoo 39BxeH a, c , e , g, i MyacyyjjBiH HYflyyflSfl xaprajDaxyrrarojiroHo. 3 h s yhjmjihhh ypayh i 5.16 - p 3ypraiiH sxhhh lypraap Y3YY/IJI3 3 .
i I Y/iflc3H TooHyyflBir 6yypax flapaajuiaap hb xaMriiiiH flssfl Mepeec sxjish ( iyyh33c 6apyyH >uirji3jifl) HyflHYYfl3fl y r r a r ojitoho. G epeep xsjiGsji
f t
D
2 k
B 0BG 1 8 1 * $ 1
67
Eyn3? 5
3h3 6o/mon>ir typyY 'ihhh 6apcT3ft 6o/LriorwH aamaap nya Syphhh xyBba yrryyflBir csarsH pexypc anmrjiax Hb YH3X33p xenerraH, KOMnwoTepHiiH hqou inaapacaH axHJi 6ojiho. n yrra hxcsx TycaM maaraaT Sojioh can rejmiHH to o acap xypnTaii ecex iom. Hhm/i yr 6oaaorw r 6oaox eep xw i6ap apra ojiox xapsrTaH. 3 n a flapaax HsrsH apraTaii TaHHJiirba. Y yh h h Tyaa uiHflST KBaflpaTbiH uihh* naHap, OHuaor 6oaoH aMap H3r 3YH tottoji ojdk xapax j X3p3iT3H. Ep hi> anHBaa SoflJiorbiH xyBba tyyh hh aMap h s t 3ytt xorToabir 1 ojichoop TyH xHJi6apxaH utHHfl3JK 6oaaor.
I l l Hfl3T KBaapaTOH M ep, 6arana, anaroHanHya aaxb 3JieMemYYAHHH HHHaSsp |
6yp Hb e e p xoopoH/ioo t3htuyy 6aftx 6 e r e e a n (nJ+ 1) /2 yrraraH ts i i i iy y G aidar. I IJLJ H/I3T KBaapaT Hb n>2 S a iix ToxHOJiaona aapaax rypBaH aH H rnnaaap HaraaTan 3\i\ T orroab ir T oaopxo iia jK 6o jih o . YyHfl;:
f l ) h —hhh yrracoH aro ii 6a «x ToxHoaaoa, (n = 3, 5, 7, 9, ...)(2 ) n —H im y rraaep eu T xyB a a ra ax xoxn oaa oa , (n=4k Sy ioy n=4, 8, 12,...) !
(3 ) n —h h h 6 y c a a y r r y y f lx y B b a (n = 4k + 2 6 y io y n = 6, 10, 14, 18, ...)
r3>K aHrnaHa. LLInasT KBaapaTbir s a rs sp aaraaTaft ToxH oajiayyaaa u ih h a s x aaropHTMLir a o o p Taita6apaaa.
C o iw roH TOOHbi xyBba (n = 2 k + l) :
n=5 6a 5x5 MaTpi-maap x iftiia a TaTan TaWa6 apaaa. HHiin63pYYH Hb 65 —Taft T3HHYY Sai-iHa.
(1 ) 3 x h h h y rrb ir xaMrHHH a33a MepHHH s y t m TaabiH Hya3Ha 6avipayyaHa.(2 ) .HapaaHHHH yTrwr T yxa im 6awpaaaaac H3r 6arana 6apyyH t h h iu , h s t
Me p as3H i u iH axwH 6aH pavyana. XspsB s h s um iw iurr33p MaccHBbiH xa3raap x3T3pB3n, xsTspcsH M ep, 6araHbiH s cp s r TaabiH M ep 6araH ana xapraa3aH iuna)KHaT x h h x 6 o a n o . 3 h s Y w aaa n iir 5.13 —p 3ypraap
Y3YYJW33-
2
1
3
V3 yp ar 5.13. n - h h h yTra coH flrofi Ye A 6awpnyynax apra
EyAaz 5
yjiflcaH b, d, f , h Myacyynafl yrra ojitoho. 3hs yhwihhh yp AYHr 5.16—p 3 yp rH H H x o e p / la x t 3ypraap ysyY-111133-
lI lH a a T KBaapaT 6 an ryy jia x nporpaM M hiH Ko/jbir a o o p y3YYJIJI33-
# d e f in e S IZE 160
# in c lu d e < io s t r e a m .h ># in c lu d e < io m a n ip .h >i n t m [S IZ E ] [S IZ E ] ;v o id o d d _ n ( in t n ) , e v e n _ n ( in t n ) ;v o id c h e c k ( in t n ) , d i s p l a y ( i n t n ) ;v o id s w a p ( in t i l , i n t j 1 , i n t i 2 , i n t j 2 )/
v o id m a in () { i n t n ;c o u t « "\ n ln p u t th e number 3 - " « S IZE « c in » n ;i f ( n > 2 && n<=S IZE ) {
i f (n % 2 ) o d d _ n (n ) ; e l s e e ven _n ( n ) ; c h e c k (n ) ;
} ■ I ■}v o id o d d _ n ( in t n ) {
i n t i , j , num =l, nns=n*3/2; f o r ( i = 0 ; i < n ; i+ + )
f o r ( j = 0 ; j < n ; j+ + )m[ ( i * 2 - j + n )% n ] [ ( j - i+ n n )% n ] = num++;
}v o id e v e n _ n ( in t n ) {
i n t i , j , b o u n d ^ - l , num =l; i n t m id=n/2, n n = n *n + l, swch = m id ; i n t b lo c k l= (n -2 )/ 4 , b lo c k 2 = *b o u n d -b lo c k l; i n t in s id e l= n / 4 , in s id e 2 = b o u n d - in s id e l ; f o r ( i = 0 ; i< n ; i+ + )
f o r ( j = 0 ; j< n ; j+ + ) {i f ( i >= i n s i d e l && i <= in s id e 2 &&
j >= in s i d e l && j <® in s id e 2 )
72
Maccue 6a 3aaen
// 4 .a// 6 .a// 6 . a// 5. a b
m [ i ] [ j ] = n u m ; e l s e i f ( ( i > b l o c k l && i < b lo c k 2 )
( j > b l o c k l && j < b lo c k 2 ) ) m [ i ] [ j ] =nn -num;
e l s e m [ i ] [ j ] = n u m ; num++;
I f ( 1(n % 4 )) r e tu r n ; i t * h - m id ;
i ( i « 0 ; i< m id ; i + + ) {
l f ( i = = b l o c k l || i= = b lo c k 2 ) {•jw ch = 0 ; c o n t in u e ;
iwap ( s w c h , i , sw ch , b o u n d - i ) ;
( i - b l o c k l+ 1 ; i < b lo c k 2 ; i+ + ) { v/.ip ( i , b l o c k l , i , b l o c k 2 ) ; // 4 .b iw a p (b lo c k l , i , b lo c k 2 , i ) ; // 6 .b
* l» (m id , b l o c k l , m id , b l o c k 2 ) ; // 4 .c(b l o c k l , sw ch , b lo c k 2 , s w c h ); // 6 .c
iw a p ( in t i l , i n t j l , i n t i2 ', i n t j 2 ) {» t ;
• H i ] [ j l l ; i l | ( j 1 ] =m [ i 2 ] [ j 2 ] ;
1/1 I j 2 ] = t ;
• h e c k ( in t n )
' 1 / j ;i jn e d lo n g sum, s ro w , s c o l , s d l= 0 , sd2=0 ;
» - ( u n s ign ed l o n g )n * (n * n + l ) / 2 ;[ << "SUM *?. " « sum « e n d l ;
r ( i - 0 ; i < n ; i+ + ) {•<ll += m [ i ] [ i ] ;
+= m [ i ] [ n - i - l ] ;• i o w = s c o l = 0 ;f o r (j=0; j < n; j++) {
•’.row += m [ i ] [ j ] ;s c o l += m[ j ] [ i ] ;
I f ( (s row !=su m ) II ( s c o l != s u m ) ) r e tu r n ;
73
B)'A32 5
i f ( ( s d l !=sum) I I (sd2 !=sum)) return; cout << "\n- O.K. -\n\n"; d isp la y (n );
}void d isp lay (in t n) { .
fo r (in t i= 0 ; i<n; i++) {cout << setw (2 ) << i + 1 << " ) ] fo r (in t j==0 ; j<n; j++)
cout «s e tw (4 ) << m[ i ] [ j ] ; cout « endl;
.Haapx nporpaMMbiH e v e n _ n ( ) cfryHKU3n depoem yn xyeaaadax yen flu ajiropHTMHH ajiXMyyziHH ayraapbir xapraji3ax MepHHH Tercrejm, Hb TaBb* erceH .
B y ji3 r 6
X a r c a a j i T
II r jp 6via 3HrwiiH ererAJiHHH 6yr3U 6ojiox aca rcaa jn w aBM x3Ji3Jiuax AviwcaajiT h b 3apnM nporpaMMHJiajibiH ( l i s p , m l ) x s jish a
■ uuorjvcoH 6a iiA ar 6oji C / C + + nporpaMMHJiaJibiH x s jish a \\mu7VoorY& SauAar. T3Bli ^carcaajiTbir C++ nporpaMMHJiajibiH X3JI
WiT x o ji6 o o c t 5KarcaajiTMH 3JieMeHT 6ytoy sauzujiaa Hb erer,n,eji 6a xo ji6ooc 1 warn) r3C3H xoep X3CT33C to t t a o t . T yxa iiH 3aHrmiaaHbi 3aarii Hb AapaaiiMHH
inpxoHJiJioo. H s r xoji6ooct xarcaajiTHH 3aHniJiaar Aoopx N od e
|) io;iopxoHJn>e.
lode I • 1 om ent;•next;
(c o n s t D ata e v a lu e , N ode* n v a lu e ~ NULL) {•m «nt = e v a lu e ; n e x t = n v a lu e ; } tvul c la s s L in k e d L is t ;
1 i.k'c Hb DataTepjfflHH ererAeJi xa^ranax elem en t, /lapaa^HHH 3aHrMJiaar • - 13C3H 3aapmHr aryyjDK 6aima. Eaftryyjiarq (J)yHKi;33p Node KjiaccbiH '• i .c k t 6yioy x a r c a a j iT H H H3r saHrHJiaa YYCH 3- N o d e KJiaccT
>pxoiuiorAcoH Haft3 KJiacc L in k e d L is t Hb H3r xoji6ooct acarcaajrraA rn»x YHHzyiYYAHHr aryyjiax iom.
xoi1600cm mmcaanmad xuuadax ymdnyyd
> x »cr33p xarcaa jrraA xh o ta bx yiiJW iYY#330 t y y h h h AaByy xajiyyABir xapaxi d . >Khiu33Ji63ji, 2carcaajiTHH s 3JieMeHTHHr ^carcaajiTMH 3X3HA
x.mnuirraH iom. Bha XHEtrAcsH y h a w h h x 6.2 3ypraap AYPCJI3H Y3YY™ 33‘
head
3ypar 6.2. S 3aHrnnaar warcaairrbiH 3X3HA mnn>KYY^3x
Jl,33px Node KJiaccaap TOAopxoftJiorflox 3aHrHJiaa 6yxhh H3r xoji6 oo£t /KarcaaiiTaA ryHU3Tr3r,n3X YHJiOTYYAHHr aapaax L in k e d L is t KJiaccaap loflopxoHJTbe. Node 6 ojioh L inkedList KJiaccyya Hb HaH3 KJiaccyya; IOM. i.inkedList KJiacc Hb acarcaajiTbin 3XJi3JiHHr 3aax head 3aar% acarcaaJiTbiH jneMeHTYYA33p ryux curr 3aarn, acarcaaJiTbiH TdfcreJi 6yioy cyY-^hhh jjieMeHTHHr 3aax t a i l 3aar*i aryyjiaxaac raflHa KarcaaiiTaA XHHi\a,3X YWJWiYY^HMr aryyjiax 6ojiho.
77
EyjisZ 6
c la s s L in k e d L is t {Node* head;Node* t a i l ;Node* c u r r ;
p u b l ic :L in k e d L is t ( ) { head m t a i l = c u r r = NULL; }- L in k e d L is t ( ) { } ;v o id in s e r t ( c o n s t D a ta );Data rem o ve ( ) ;w o id r e s e t ( ) { c u r r = NULL; } v o id n e x t ( ) { c u r r . - c u r r - > n e x t ; } v o id s e t F i r s t O { c u r r = head ; } v o id s e t L a s tO { c u r r = t a i l ; } v o id p r i n t ( ) ;
} r ‘
X oocoh >Karcaajrr Hb w a p h ajieMeHT aryy/iaxryif. G e p ee p X3Ji6 3 Ji head, t a i l
6o.fioH c u r r 3aarnyyabiH VTra n u l l 6 aiiHa.
) K a e c a a n m a d a j i e M e m n o p y y j i a x
U inH 33p opyyjiax 3aHrHJiaaHbi 6aHpjiaji ^carcaajiTtiH 3X3Ha, aVHa, TorcreJia rsa rssc xaMaapq x n i ir a s x yHJiaJiyya 6 o jio h y h jw ih h h aapaajia jia 6ara 33p3r eepMJieJiT opHo.
v o id L in k e d L is t : : i n s e r t ( c o n s t Data ite m ) { i f ( ! c u r r ) {
head = c u r r = new N o d e (ite m , h e a d ); i f ( ! t a i l ) t a i l = head ;
! •e l s e {
78
}Kaecacuim
•next = new Node(item, c u rr -> n e x t ); » i i l == curr). t a i l - curr->next;
B p i *|'Vhkh Hb IUHH3 sjieMeHTHftr H3r x o ji6 o o c t ^carcaajiTbiH 3XJ13J1, flyHA, Im * » « m \\ 11 ajib 4 6aHpjiajm opyyjiax 6ojiom;hctoh 6a YY^HHr c u r r 3aarHHHH
m m v u )X wuyyjDK e ra 6o jih o . EpeHXHH toxhowow uimh3 3JieMeHT hb smarr . w.iriHHH apaap opox 6a c u r r 3aarn xaM raiiH c y y ^ h h h 3JieMeHTMr
U » i (c u r r - t a i l ) ToxHOJiflOJi# uiHH3 3JieMeHT acarcaanrrbiH Tercreim opHo. I *1* »n 1HHH3 ajieM eH TH iir HMarT xa rcaa jiT H H T e rc re jiA opyy jiax (^*«p;uiaraTaH 6 o ji 3JieMeHT opyyjiax 6ypT c u r r 3aanmHr xarcaajiTbiH 9m% rnnA 6awpjiyyjiax ecTOH. >Khiii33Ji63JI a, b, c, d, e, f , h5 g, i , j T3C3h • »m.i irrYYAHiir xarcaajiTH H Tercre jifl opyyjiax k o a h h xscr ira r flapaax
*-map 6hhh3C 6o jih o .
||Ak«*ilList l i s t ;f * i (ch ar elm =65; e lm <75; e lm ++) {
l i s t . s e t L a s t ( ) ; l i s t . i n s e r t ( e l m ) ;
i i » »pxM k o a h h 3XHHH MepeHji, L in k e d L is t KJiaccbiH 0 6 'beKTbir 3apjiacHaap
iin t P3 C3H x o o co h H3 r x o ji6 o o c t acarcaajrr YYCH3- IH h h s sjieMeHT opyyjiax ypr cu rr saarn l i s t . s e t L a s t ( ) ^yHKUHMH TycJiaMXTanraap acarcaarrrbiH
t«tcre jiM H r 3aax 6 o jih o . Hhm33C l i s t . i n s e r t ( ) cfcyHKii; u ih h s 3JieMe m M r
*Mii i t )KarcaaJiTHH T e rc re ji# opyyjraa.
head
head
4H 3head
&1 . „ : . s s s ;
3ypar 6.3. Har xo ji6ooct warcaanTafl a/ieMem opyynax 6a ycirax
79
Eyjise 6
UfaH 3 3/teMei rr opyyjiax yea xarcaairr xoocoh 6aflx, s c b s j i uihhs ajieMeHTMttr xaicaajiTWH axsHA opyyjiax rscs ii xoep OHiirofl Toxnojifljibir xoonox xspsrraii. JJ,33pxn in sert {) c^yHKHHHH xyBBfl uihhs sjieMenxMHr xarcaarrrHH 3X3H/1 opyyjiaxHH i jJifi curr 3aar>mta y rn jr n u ll Sojitox ecTOH. >KHUi33Ji63Ji, a - j xscsh AapaaifJiaap TSMflsrTyynHiir xarcaajrrbiH 3X3H/i opyyjiax KO/tbiH xscraftr AoopxH 6aH;uraap 6 h'ih:k 6ojiho.
LinkedList l is t ;for (char elm-65; elm<75; elm++) {
)|p r in t ( ) cjjyilKH Hb c u r r 3aarlIHHr s e t F i r s t ( ) rHHiyyH (JjyHKHHHH xycjiaMxxaiiraap xarcaaiixHH sxjisjw 6aHpjiyyjiaH, yjiMaap w h ile (cu rr ) aaBTajixaap curr 3aar>iHHH yxrar n u ll 6ojito ji 6yioy acarcaajixbra Tercreji xypT3Ji ryiixflss sjieMeHTyyflHftr xsbjisx k>m. Eha eMHex xscraac H3r xoji6ooc >KarcaaJiTHH xojiSoocoop 36BX6H flapaaHHta 3JieMeHTS.ii ohhx 6ojroMacroft 6ojioxur mshcsh. Tsrasji 6hq pexypc arunrjiacHaap Hsr xojiSooct xarcaajiTur Tercre.jieec Hb sx jis ji pyy ts c s h xo jiS ooch h scp sr HHrjisJifl xsb jisx
80
Xazcaajim
mi/iuMXTOH. 3h/( acarcaa^Tur T e rc re jie ec sxjis/i pyy xsb jisx peKypcT 4>yiiKHHHHKoflMr YSYYJU133- C++ X3JI Hb hjkhji H3pT3H cJjyHKHHiir auiHrjiaxtir imuiioepmer. Hhm <J)yfiKHYY4 Hb apryMeHTaapaa ajiraaTaft 6aMx ecToft Qereejil ull I'jpHHT flaXHH TOffOpXOHJIorocOH 4)yHKH F3X H3pJI3,0,3r.
.til L in k e d L is t : : p r in t (Node *p ) {I r <!p ) return;• 1 s e (
p r in t (p -> n e x t ) ; ■ // * 1cout « p->element « endlj // *2
* 1 1 n ( ) 4>yH K H 33c p r i n t ( ) c^yH K U H H r # y y f la x # a a a p r y M e m a a p x a r c a a j r r t i r
•yji j j in i t r A a M a cyy jiH a . iK a rc a a jiT B iH s o a j i M t i r L i n k e d L i s t K d a c c H H h e a d
i . i . i r 'i f lM a r T 3 a a 3 c 6 a H x 6 o ^ o B H m a if i ( ) (| > y H K U 3 3 fc f fy f t i fm y y z ix a H iia x a p x r Y ii .
11 iiM fl JKarcaaJITHH SXtfSJIHHT 6 y n a a x II3M3JTT rH U IYYH (J jyH K UH H r L i n k e d L i s t
k ;ia ccT TO fldpxoH JD K e r e x x a p s r r a t t . 9 h 3 c|)yHKUMHr g e tH e a d ( ) r3B3Ji t y y h h h
koAur
Inline Node* LinkedList::getHead0 ( tetutn head;}
1 1 * T o f lo p x o H ^ x 6 o j ih o . X a p H H main ( ) <J)yttKH33C print ( ) 4>yH K H H H rA ap aax
(■laii/ytaap a y y n H a .
i . in k e d L is t , l i s t f
I i s t . p r i n t ( l i s t . g e t H e a d ( ) ) ;
i t i n t ( ) (JpyHKH hi> 3XJ133A x a r c a a m rH H 3XJ13JIMHT a p ry M eH T a a p a a a s a x o e r e e j i
A a rc a a jiT H H T e r c r e J i x y p T a n f la p a a fla p a a q H H H x a a 3 aH iH J iaaH fl p e K y p c a s p
11 ' i n o . P e K y p c T (JjyHKU h b a ca rca a flT H H T e r c r e j iA x yp aa/ l 6 y u a x a a a xa rca & iiT B iH
(J ieM eH TYY flH H r X3BJX3X iom . H u r s c H S s p a c a rca a jiT H H T e r c r e j i e e c s x j ib j i p y y
O y io y p r i n t ( ) (J jyH K UH H H 3Cp3r HHJt3Jta X3BJI3X 6 0 JIH0 . X a p H H p r i n t ( )
p e K yp c T (JiyHKHHHH KOAHbi * 1 6a *2 M ep yyA H H H 6 a iip B ir c o j ih b o j i p eK yp c i'Y H
p r i n t ( ) 4>yH KH T3H H 3 r aflHJI Y P XTYHfl XYipH3.
)Kazcaanmaac 3/ieMenm ycm eax
l l s r x o j i 6 o o c t x a r c a a n T a a c 3 / ieM eH T y c T r a x Y e f l t y p Y Y ^ h h h (3 ; ie M e n T
o p y y n a x ) aAHJi a c y y a a j i a p n r f la x 6oJ ihO . 3 y p a r 6.3-t yayyJ iC H S sp 3/ieM eH TM H r
aca rcaa jiT aac y c T r a x y e # y c T ra x 3 a H rn ;ia a H B i o m h o x 3aH rH J iaaH H 3aar>i h b
y c T ra x 3 aH rH J iaaH H / iapaa in iH H 3aH rH J iaa r s a a x e C T o ii . T y x a ft j i6 a n X 3JieM eH T
6 y x h h 3 a H n u ia a r y c T ra x H H T y w 1 3 a H raJ ia a H M 3 a a r i s s a H rH iia a r 3aax 6 o j ih o .
H hm /i c u r r 3 a a r i h b y c T ra x 3 a i i r a j la a r 6 h u i, TYYH H H e M H e x 3 aH rH J iaar 3 a a x
^33pXH KOflWH X3C3IT temp 3aarc h b ycTrax x saHrHJiaar temp=curr->next; rscoH YHJiflJi33p 3aax 6ojiho . 3 h s curr 3aarq ycTrax 3aHrHJiaaHH eMHex1 3aHrHJiaar 3aaac 6 a iix e c r o it Y y h h h aapaa i 3aHrMJiaaHBi 3aarn hb ycTrax 3aHrHJiaaHBi aapaaiiHHH 3aHrHJiaa 6 o jio x s 3aHrHJiaar curr->next^ temp- >next; T3C3H YHJWT33P 3aax 6 o jih o . M h ts x ycTrax 3aHrHJiaar }Karcaajrraac xacaxBiH 33psru33 TYYHHHr MeH caHax o iiro o c ne jie e jie x ecTOH.
H a r x o j iS o o c t m a rc a a jirb iH o i iu r o f t x a jiS a p y Y A
H s r xoji6oo c t acarcaajiT hb aaBTajirraH Satac 6ojiho. flaBTaJirraH Hsr xoji6ooct xarcaajiTBTH TercrejiHiiH 3aHrHJiaaHti 3aarq hb flMarr 3XJI3JI33 3aax 6aiiaar. 6.4-p sypraap aaBTajrrraii Hsr xo jiSooct acarcaajiTHH acHinssr Y3YYJIJI33.
•p xoji6oocT3Karcaajrr Hb X3#vmr33p xarcaajiraH AypwH 3JieMeHT3A m y y A minx Gojiondkxyh li xoep H n r jio m flBax 6ojiowdktoh 6ojichoop 3/ieMeHT jry/iax, ycTrax yeA HJiyy y^H xaraB iom. Xoep xoji6ooct acarcaaJiror Aapaax •ccuH sapjiajrraap toaopxohjdk 6ojiho.
X* >c p xoji6ooc t acarcaajrr hb H3r xoji6ooc t acarcaajiTBiH H3r a#HJi aaBTajiTTaH (U N * 60JIH0.
A a r c a a j iT b ir M a c c w e a a p H J iap xm iJ iax
fiMA c 6ojioh c-f-f x3jihhh 3aanmHH TycjiaM^CTaftraap acarcaajiTBir hsbtpyy^3* mi. xjimthhh toxhpom>ktoh apra 6ojioxb it eM Hex xscrssc xapjiaa. XapHH 3Hjx jta icaa jiTu r MaccHB auiHrJiaH xspx3H H S B TpYY^x^^r X3J13JIIJ3X 6 ojih o. AarcaajiTb ir MaccHBaap HJispxHHJisx Ye# xo ji6oocb ih opoHA MaccHBbiH •maeKCHiir aiiraniaHa.
Aaj caajmar HJispxwftJisx MaccHB hb ereraeJi 6 a xoji6 ooc (HHAeicc) 1 a/i6apyyaaac toitox 6niiJi3rYYAHHr aryyjDK 6ojiho. flapaax 3apjiajrraap Node (>Vthhhh 6H'ui3ryY4 aryyjiax l i s t MaccHBBir ToaopxoHJiJioo.
m tuct Node {Data element; int link ;
Mode l i s t [100];
l i st MaccHBBiH 3JieMeHT 6yp element 6a link TaJi6apyy#aac 6ypA3H3. link 1 aji6ap hb aapaa^HHH sjieMeHTHHH MaccHBT 6anpJiax hh ackch hh ayraapBir aryyjiHa.
v-
>KarcaaJiTbir MaccHBaap h jispxhhjisx eep H3r TOXHpoMacroft apra 6oji na pcu u ie jib ee icm o p (xoep uiyraMaH MaccHB) k>m.
•)Ar33p MaccHBbiH ereraeJi xajjrajiax MaccHBbir data, xoji6ooc 6yioy hhackc xa^rajiax MaccHBBir link tsbsji data [ k] 6a lin k [ k3 yrryya hb acarcaajrrBiH H3r 3aHTHJiaar ToaopxoHJiHo. s t a r t xyBBcarqaap acarcaajrraH sxhhh jaHrnjiaaHBi 6aHpjiajiBir 3aaJira>K, TercrejiHHH 3aHmJiaaHBi xoji6oocbih yrrBir - 1 T3M Toaopxoiljrac 60JIH0 . C++ X3JIHHH MaCCHBBIH HH/jeKC 0-33p 3X3JIA3T
85
Eyjae 6y n u p H w a p n a r c e p e r y r ra 'r a H t o o 6 a i i x 6 o j ih o . 9 c b 3 / i MaccHBHH s x h h h
sjieMeHTHfir xarcaajiTafl y n a u iH ra a H , xcarcaaJiTwn T e r c ra n H H H s J ie M e H T H ta
x o j i6 o o c h h y r r a 0 6 a t o c 6 o j ih o . 9 h s m s t u i s h n p o rp a M M a o x H o n e e p H H H x e e
G a iiJ io ro fl T o x a p y y j ia H H M apq a p ra xapar/iaac 6 o j ih o .
vK arcaa iiTb ir napa ju ie jib B eK Topoop xapxsH HJiapxHHJicHHHr 6 .8 -p 3ypraap
Y3YY® !39 - S t a r t xyBbcaniHHH y r ra 3 r a x e r e r 'A c e n e e p xarcaaJ iTH H 3x h h h
3/ieMeHT MaCGHBBIH 3 flaxb 3JleMeiIT33C 3X3JTH3. DATA [ S t a r t ] Hb 3XHHH
3/ieM eHTHHH e r e r ,a e j i 6 a l i n k [ s t a r t ] Hb x a r c a a m rH H z iap aa 'iH H H
3JieMeHTHHH M accH B fla xb 6aH p jia jvb ir To/ iop xo iiJ iH o . Q e p e e p x 3ji6 3 ji
A a p a a 'iH H H 3JieM eH TH H H e r e r f l e j i Hb d a t a [ l i n k [ s t a r t ] ] ra iK
TO AopxottjrorflO H o. M h ts jk link M accHBHH T yc jiaM X T a ftraa p /i,apaairaHH
3JieMCHTYYfl3f l ^aM XH H x y p s x 6a link[k] —h h h y r ra —1 6a ftx M accHBHH k
a y ra a p sJieMeHT Hb xa rca a ir rH H cyYJTOiiiH 3JieMeHT 6 o jih o .
Start
t s h
Avial
0 -
3ypa r 6.8. >KarcaanTbir napannent Beicropoop nnapxmnsx.
int i,M,N, eta, step, *mouse;cout « "How many mouse: cin » N;cout « "Step: " ; cin » M;
Maecacuim
cat
6.9. XynraHyyAbiH A yraapbir x a A ra n a x AftBraiTrraH nor x o ji6 c o c t >KarcaanT
m iii/it aiuHrjiacwaap Myyp xyjiranwr t o o h # 3 x z i3 3 xarcaajiTHH ** i.i r aumrjiaH H3T ajfeMeirr ynuorajt }K a rc a a ji™ r xoftpox 6ctoo,. H[apaax
IfjwiMMaac y r 6o/uioro# x a r c a a ir rw r X3 PX3 H auiMDiaxOT xapsyraaa.
h Iwde <iostream.h>*•»» f int Type; iM Mouse { yp« number;triune *next; 1
•Me(const Type mnum, Mouse* nm) { number *= mnum; next * nm; )
i !• i»d class MouseList;
*an MouseList {House *head, *curr;1*1 i c ;MouseList () { head = curr *» NULL; }MouseList( ) { } ;
void insert(const Type);Type e a t ( ) ;old next() { curr = curr-*>next; }
id MouseList: : in sert(const Type num)( i f ( ! head) {
head f curr = new Mouse(numf head); curr->next = head;
) ‘ r n tx o 'else {
curr->next = new Mouse(num, head);
Byrne- 61
mouse new in t [N ] ( 1 ) ;
* e ta = s te p = 0 ; i = N - l ;
% w li i le (e ta < N - l ) {i . = (+ fi)% N ; i f \itiouseli] )
(s te p = (s te p + l)% M )) { m ou se [i] = 0 ; e ta+ + ;
}
i = 0 ; .while ( !mouse[i++3); cout « "Last mouse: " << i « endl;
3 h 3 6oztrrorbiH h exue/i ecoop HtfsrflcsH xyjiraHa uyBaanaac xacar^ax ecxoM. r3B ir MaccHBaac 3JieMeHT ycTrajK ^a^axryH y w p 30BX0H MaccHBbiH 3/teMeHTHHH yrraap H^3.r^c3H 3C3xwwr (a M b £ = I, H flsr^csH ^O ) iuajirax 6 ojiom )ktoh . Hhm33c H,n3r^[33rYM xyjiraHbir to o j io x h h Tyjifl MaccHBbiH 3 JieMeHT 6ypHHH VTTbir i f (mouse [ i ] ) T37K m ajirax inaap/yiaraTaH. M yyp xyjrraHHr H#3X TycaM MaccHBT y rra Hb 0-T3K ts h u y y 6aftx ajieMeHTYY# (MiX3r^c3H xyjiranyyzi) H3 M3 n i3x 6a ^aBxajiT 6ypT Ta^rasp sJieMeHTyya moh majrrajrTa,zi xaM par^ax 6 o jih o . M H racH ssp y r ajiropHTMbiH a^KHJi^ax xyrauaaHbi H3r xscar hb 3H3 aum rryft uiajirajiTaji 3apuyyjiarnax 6ojtho. M yyp n - i xyjxrana H£3X w h ile (e t a < N - i ) naBTajiraa MaccHBbiH 3JieM€HT6ypX3£3H yjjaa vHUJHrnaxbir. e ep eep X3/i63^ MaccHBbir X3#3H y&aa Tonpoxbir toouoojdk Y333p3H. S h s Hb M3II333K; aJixaMbiH to o m-hhh yxraac niyya; xaMaapHa.
TarBSJi 3H3 6o;uTOrbiH a>KHJUiax ropH M # x a rc a a jr r 3YH ecoop Toxw pox e re n m m iH 6yt3U iom. 3 h / i am w niacaax >ftarcaajiT Hb 6yx3 ji to o h 3JieMeHT 6yxHH naBTajnraH H3 r x o ji6o o c t >KarcaajiT 6a fixa ^ xaH ra jirraH k>m. M y y p >KarcaaJITbtH 3XJ13JI33C 30BX0H H 3r HHr^3JTA TOOJIOX y4H p H3T x o j i6oo c xyp3JiU33T3H. C ^ jih m h h xy jira H b ir ToojrcHbi zjapaa #axHH s x h h h xy jiraH a^ o to x VHHp xarcaa jiTan naBTajrr opyyjrac e rcH eep aJiropHTM ynaM x«Ji6ap 6o jih o . X3p3B ?KarcaajiT Hb aaBTajiTryH 6o ji acarcaanrrbiH T e rc re ji# xypcHHH napaa naxHH ^KarcaaJiTbiH 3XJi3Jin o h h x h h Tyjin, xarcaaJiTbiH 3XJi3JiHHr HM arr c a n a x 6 a iix ecTOH. M o h M yyp xcarcaajiTbiH b x h h h 3JieMeHTHHr H /p x to x h o j ia o j ia ^KarcaaJiTHH s x j i s j ih h t y# a a x 3JieMeHT3# u ih j i jk y y ^ ^ x maapjuraraTaH 6o jih o . 3 h s aJiropnTMii am h m ax aaBxajirraH x a rca a jiT b ir 6.9
—p 3ypraap Y3YY-riJT33-
3eBX0H >KarcaajiT yyc,'3X Ye# ^arcaajirbiH 3XJi3JiHHr aiim m ax 6a 6o a o j it m h
jibluui >KareaajiTbiH 3XJI3JI r3C3H o h j iio j it xspsrryM. Y n u p Hb AaBTajiTraH
y K a i c a a j im
6ara yefl sflresp ajiropm'MbiH suiraar 6apar M3Hp3xiyM 6aiix. h h h t
xyjiraHHH too n, Sojioh ojixmuh too m-h h h yrrtir spc wocraBaa j-KarcaajiT auiHrflacaH r r p o r p a M M h jiyy xypflaH a ^ H J i n a x H r xapac 6o jih o . T a B q
>tcarcaaJiTHr 3H 3 SojpiorbiH xyBba TyiiJibiH xypaaH I3C3H tojjoitoji opoeci e;i k)m. 3 h h 30BXQH x a r c a a j n w yHHiiinmaii hjiyy oiinroMJKTOH Taiiji&apjiaxbir
JOpHJIOO.
Ojioh eu iuyyum
•)Hfl 6 n n OJIOH IHIUyyHT 60JI0H OJIOH raiUYYHTHHH XOOpOHfl X H H X 3 a p H M yiiJiAJiYYOTHr sb*i y33x 6ojih o . O jio h thiuyYhthIih e p e H X H H xajiSsp Hb
fk iiijia r. c x " -H iir axnax th u iy y h rexc H sp jis /o r. 3 h s Hb H3r xyBtcarHHHH n jlY rs s p 3P3m6mhh o jio h t h u iy y h t 6e re e a c. Hb i flY r3 3 P 3P sm 6hhhK03Cf>CJ)HUHeHT IOM. )K h UI33Ji 63JI:
5 x 2 + 3 x , i 1
1 2 X 3 1 4 X
S O x 20 + 1 0 x 10 - 5 x 3 - 4 x 2 + 2 x + 1
( ) ; io h th ii iy y h th h h 6n>inrji3jrji x -H iiH aM ap H sr aapsr 3c o p o jiiib o ji Tyc 1 muYYHHttr T3r KoscftcfMUHeHrraH o p o jiiy io o r s x Y3flsr.
O jioh rmiiYYHTHHH xoop oH fl H3M3X, xacax , yp xyyJ isx , xyBaax yHJiflJiYYfl 1 y iin 3TT3A3r 6h ji33 . 0 ;roH raniYYHTHHr hsm sxsh (xacaxaa ) y r x oep o jioh 1 h iuyYHTHHH TecoeTSH rm iiyYAHHr 3MX31T3X 3amaap yp A Y iir o jiflo r. G o p o o p X JJl63JI x-HHH H2KHJI 33prHHH K03<})4)H UHeHTyyjlblr XOOpOHfl Hb H3Mfl3r. >Kh UI33Ji63J1:
( S x 2 + 3 x + 1 ) + ( 1 2 x 3 - 4 x ) = 1 2 x 3 + 5 x 2 - x + 1
I ipOHXHft TOXHOJIflOJIfl N UIHPX3T K03(]xj?HUHeHT 6yXHH JiypblH
l> ( X ) = p „ + p tx + ppc2 + . . . + P „ a x ‘- 1 .
ojioh THiiiYYHTHHr p [ x ] = ps 6aftx p(N ] MaccHBaap HJispxHiiJias So jiho . ( )jioh rHUiYYHTYYJIHHr MaccHBaap HJispxwiiJicsH toxhojmojm 'rearsspHHH xoopoH fl H3M3X YwajuiH iir X H ito fl flapaax nporpaM M HH B ar M ep 6alixa fl xaiirajiTTaH iom.
l o r ( i = 0 ; i < N ; i + + ) r [ i ] = p [ x ] + q ( x ] ;
0
91
Eymz 6next o ;
Type MouSeliSt: : e a t () {Mouse *temp; iht. mnum;temp = cu#r~>next; cittt->next — temp->next; mnum • temp->number; delete temp; return mnum;
i u
int maint) {MouseList m list; int N, M, step=0 ;
Bout << "How many mouse: cin » N;cout « "Step: " ; cin » M;
fo r (in t i= l ; i<=N; i + + ) m list. in s e r t ( i ) ;
w h ile (Im list.isLast( ) ) ji f ! ! (step = ++gtep%M)) m list.ea tO ; else m list.next( ) ;
t t io KJiaccbiH p in 3aarn hb ojioh ramYYHTHHH HcarcaajrraH 3XJi3JiHHr 3aaHa. Omni rauiYYHTHHr xa rcaa jm A opyyjiaxaaa in s e r t o 4>yHiaiHftr axnitraaH1 miiiyyh 6yphhh KosiJx^HHHeHT 6ojioh 3p3M6Hiir uiyyA op yy jix e ra 6ojiho. ■K ii jji o jioh rHUiYYHTKHH 6n’ui3 r X3Ji6 3p3 3 p Hb (p (x ) = 12xs + 5x2 - x + 1) o p y y jix 6o jih o . 3 h s to x h o jia o jia o p o j i th h t s m a s t t M ep a ftr (o jio h imiiiyyhthbdt) 3aflJiaH soiraji xaitoK, KoacJx^jnnieHTyyA Sojioh spsMfjyYAHiir ■ «)ii aH aB'i xarcaaJiT yycrsx cfiyHKit Sh i h x e rex inaapAJiaraxaii. Tsbh 3H3 r*y 11 ihKh to ji 3opHJiro Hb xarcaairr 6ojioh tyyha xmmiasx YttJWiyYAHflr cyAnax nivuiji 6hjI33. XapHH 3aAnan HJiran xhhx 3apHM ajiropHMbir 17 —p 6yjir33c tnpuapaft,
><)id Poiynom:: in se rt(in t c, int e) I Fnode *pn, *tmp = pin; *pn = new Pnode; pn->coef ** e; pn->exp = e;i f ( ! (tmp)i|(tmp->exp < pn->exp)) (
93
Eyjaa6Yhjws-HA o p o j iu o x 6 y a x o ep o jio h fh u iy y h t Hb h x h j i apsM SsTsii 6a iix a jiSaryH 6 o jio h ii Sara sp sm S h h h o jio h rH inyyHXHHr h x apsMSHHHXsapHJISpXHHJDK SOJIHO. TyXaHJlSaJI q.(x) OJIOH THUIYYHT M Iim p xsr K03<J>c})H- HHeHTreii (m<n) T3B3JI qH -q ^ KoacfxJiKiiHeHxyyAHrxsr yxraxati aBax Sojiho.
XapHH x oep ojioh iHiiiYYHXBHr xaaJiT3aAJiax xyyjraap ihiiiyyh'ijish ypjfcyyjDK:,
x e c e e x s ii rH iUYYflnfir 3MX3TT3X 3aMaap ypxB spH H r ojiho. /Japaax koahh X3CI33P OJIOH rHIHYYHTHHH XOOpOHfl YP>KHX YHJIflnHHr XHHX SOJIHO.
fo r(i=0 ; i<2*N -l; i++) r [ i ] = 0; fo rfi=0 ; i<N; i++)
fo r ( j= 0 ; j<N; j++)r [ i + j ] + = p t i ] * q t j ] ;
YpJKBSpHHH YP AY11 S o jiox r (x) OJIOH rHIITYYHTHHH K03(J)4)HHHeHXyyAHr xaflrajiax r MaccHBHH X3M2K33 Hb YPXBSPT OpOJIHOX 6yw OJIOH rHIHYYHTYYflblH A33A 3P3 m 6h h h HHHJiSspasp t o a o pxo ftjro r flo x io m . 9 h 3 nporpaM M H H a*HjrJiax xyrauaa O H pojiuooroop N2 Saflx Sojiho .
O jio h rnu iYYH XH ftr M accH Baap HJiapxH iiJ icH sap k fly ra a p s p s m Sh A h K03<J>4>HUneHT3A MaccHBHH k ayraap HHfleiccssp uryyii xaHflax AaByy TajiTaii S o jio bh o p o J iu oo ryH rHUiyyHXHHH 3 an r a r y y j ix S a tt^ar A yTarfla jixa ft TajrraH.2KHiii33Ji63Ji:
(jjioooo + 1), (,2x 10?.m + || := 2 x 20000 + 3 x 10000 + 1
/l33px 2aHH33HHft OJIOH rHIIIYYHTYYflHr q[ 10001 ] , p [1 0 0 0 1 ], r [20001] MaccHBaap H J iapxH itox y ea TyyHHft 36BX0H 2 - 3 sjieMeHX ji auiHrjiarjiax So jiho . H h t3 ch 3 3 P nporpaM M HH a x a iu ia x xypA 4 y/(aaurpax So jiho . 3 h 3
t o x h o j ia o j t a o j io h ru iiiYYH T H H r x a r c a a jiT a a p h jis p x h h j is x Hb h j iy y xoxupoM iKioH. O jio h raiHyyHTHfir acarcaanxaap h jispxhh jisx yea xarcaaJixbiH
3aHrHJiaa S yp H3F n ff l iY Y H H iir T O A opxo ilJ iox Sa TyxaH H rH n iyyH H tt K03c|xJ)HUHeHTHiir 3P3m6hhh xaM T^ara jiH a . jKarcaajiTHH 3aHnuiaar Aapaax Pnode S yn taap Toflopxofljm c SojihP-
struct Pnode { int coef, exp;Pnode *next;
} ; ■ V
3aH nuiaa Syp AapaaHHHH 3aH£HJiaar (Aapaa^HHH rH m yyH H iir) 3aax 3aarHHftr aryyjiHa. >Kh ih 33jiS3JI 6.10 —p 3ypraap p (x ) = 12x5 + 5x2 - x + 1 ojioh rainyYHTHHr acarcaa-iixaap ipapxHttJDK Y3YY®i33.
9 h 3 yea ojioh rHmyYHTHHH xoopoH A x h h x y h j w x y y a h b xa rcaa jix xoop on n
92
ByJiar 7
C T e K
( JMHex 6YJirYYfl33P Y3C3H myraMaH MacciiB 6a acarcaajiTafl aneineHT opyyjiax, x.iiix, raprax Sojioofl HMap H3r 3JicMeHT3/i xaH/iax ytiJiii3Ji hb aypwH 6aiipjianxi ( jx 3Hfl, flyiM, Tercre jm ) ryHusTrar/pJK 6aMcan. T s ib s ji 3apHM ererflJiHHH (i\ tu h h h 3jreMeHT3A xan jiax yhjm3JI h i. xstaraapjiarjiMaJi 6aHflar. Mhm vii iraapjiai7iMa.n xaHflajrr 6yxhh ereiflJiHHH 6y tiih h h h s t 60ji CTeK iom. CxeK Hb e re ra e ji xhhx 6a a Bax rscsH yhUcsh xoep YHJW3JI 6yxhh myraMaH 6yr3u (W e e # s/irssp yiuw iYY flH H T cxeKMhh opott rax 30BX0H h o t x e rc re jm 1 YMH3TT3fl3 r. G ep eep xsjiSsji cxeK iiiin opo it flaxb xaMrHHH cyy-W opcoH DicMeHT axajDK rapax 3ap>iMaap aaaiJinaaar. Mhm ssc cxeKHtir “ cyyad opcon in, -)X3jimczapctx” ( l i f o - iast in, f ir s t out)x a rcaa jiT 1 ra x H 3 p ;i3 x H b 6Hii.
( ' i'ckhhh uiaapfljiara
X i/iHHrssp cxeK Hb Main xfl3raapjiar4Maji yhj]W.3 jit3h 6ojiob<-i KOMriMOTepHstH MimrpaMMHJiaiwiyxaji YYP3rr3ii erenyiHHH 6ythyy/ihhh Har iom. Tyxattji6an MMap H3r axjiHH HBiia/i eep axHJi xHliraaxaap typ xoiiMJiorflox, scbsji nporpaMM 6yx3Jm93 hhm aapHMaap aacHJiJiax 33p3r ojioh aJiropHXMfl cxeK y IU1C3H yypsr i’YHii3xr3 H3 . yKnui33Ji63Ji, /pa (JiyHKU .nyyaarflax (cai l/r e turn) McxaHW3Mfl CTeK x3px3H auiHrjiarflaxHr aBi Y3be.
’ I p 3ypraap rbji toymen. .nyynax nporpaMMHH KOjiur xscshijish xapyyjicaH f>.iltna. max () (JpyHtai Hb apryMeHTaapaa xoep 6yx3ji xoo aB>i xapbityynaH hx y n u r 6ynaax ep^niin Har c|jyiiKU iom. JXr l cfjyHKu; /tyyaamaH axiirr/raxazi itiipaax ajiXMyyH xiriiraax ecxoH.
Ap r cjjyHKU Ayy/iarjiaxbiH om hgx TejieB Saitajibir xa^rajiax (xyBbcarwHH yTra 6o ;io h 6yu,ax x a m -n p R 4>yhkh aacHJiJiaJK ayyccanbi flapaa yprsjiacjiYYTOH aaauuiax 6aiip/iaJi)
} ils fl 4>yHKU ayyaax
95
Ey. tae 6p n -> n ex t = p in .= pn;
p in ;
raise {
w h i l e ( ftmp“ >n ex t; ss (tm p -> n ext-> exp > p n -> e x p )) trap = tm p->next;
pn -> n ex t = tm p->next; tm p~>next *= pn;
H,33pX i n s e r t () cjjyHKH Hb OJIOH ramYYHTHHH raUIYYflHHH 3P3M6hHH XyBbfl 6yypaxaap 3 p3 M63Ji3 r,nc3 ii acarcaajiT yYcr3H3- 9 p3 M6 3 ;i3r,nc3H xarcaanrr yycrecH ssp jKarcaaiiTbiH 6yca/i YHJwiyy/iHHr rytiusxrsxs# xan6ap, aexeMTsft Gojnozior.
U sapx poiynom KJiaccMH rimiyYH 4>yHicu,YYflHHH Ko/ibir ryiinss;* 6h >jh x
aaaibir ym inn'i tana yjripse.
>>4
Byjiaz 7
YHdcsH npoapaMM cfrymu,
" — - int max(int v, int w) {int res;
x = max(a, b ) ; ^ res = (v<w) ? w : v;cout « x; ^ return res;
X
^ --------- ^ ^
3ypar 7.1. flafl ( yHKLi flyyflarflax anxMyyq
3. JX 3A a)KHJurax4. H3R 4>yHKH33c 6yuax
4-p ajixaMA A3A 4)yHKK a*njuia>K Ayycaa# 1 -p ajixaMA xa^rajiarAcaH TejiBHftr capraaH 6yu,ax x c im u u h TycjiaMaeraHraap A3A 4>yHKU( AyyAaxaap racajmcaH nporpaMMMH X3C3ir sprsac ohhh yprsJUKJisH a>iauuiaAar. IJaammiGaji X3A X3A3H 4>yHKUYYA A,aM)KHH (inaTJiaH) AyyAarAax (3ypar 7.2) scbsji pexypcr 4>yHKU axHJuiax yeA 1-4 ajixMyy# Hb 4>yHKUHHH p y y j& m 6ypT xmir/pHs.
a
i f b
3ypar 7.2. flaA cfryHKUYYA AaM>KMH flyyflarflax
3h3 ye^ 6yuax xaaryyA (tojibyya ) x a # r a j i a r f l c a H flapaajuibiHxaa scpsresp csprssrASH aurarJiarAax 6ojih o . i&Afeap TejiByyAHHr xaArajiax xaMrnim toxhpom>ktoh ererAJiHHH 6yT3U 6oji c rek iom. Ep Hb ctckh h h eepHHHx Hb axuJiJiax ropHM 6oji cyYAA opcoH Hb sxsjdk rapAar 6hji33.
96
Cme/c
7 2 *p 3yparr y3YYJicH33p a (J>yHKip3c b (JjyHKUMiir ay>'aax yea a (fcyHKuaftH 4 * i i/i/ia* SaflcaH reJieB creKT xaarajiarAax 6a b 4>yHKU33C c 4>yitKU,Hft i • jfyyffflx Y*/i b 4>yHKUHMH aacHJUiaac 6awcaH tb jibb ctckh h h opoiia xaAraJiaiAana. r •|»Vhku a>KHJiJia>K AyycaxaA c t c k t xaMrHHH cyyJiA xaArajiarAcaH TejiBHHrl tpi33CH33p b 4>yHKU3A 6 y ija 2C OHHH YPr3JIXUI3H aJKHJIJiaHa. b 4>yHKU rtyycaxaa c tck h h h opoH Aaxb TQJiBHHr ab*i csprsscHssp a <})yHKJU3A 6yuaac o*ihif Ypr3JDK/i3H a>Kn;uiana.
I'ckypcT (J)yHKU Hb nr 3H3 3ap4Maap axu/maAar. G epeep xsjiGsji tjpyiiKu, xsash ynua e e p e e e e p H iir e e AyyAHa Tsp Tooiib i io jio b c t c k t \aAiajiaiA&* 6 a avvA iracaH 6aHpjiaJi 6ypT33 6yya^c o4HH ypr3JDKJi3H a^aumaAar. Hhm jjc h rmnaa peKypCT cJ)yHKii,MHr 6ha c ieK auiHDiaH peKypcryH <t>yHKU 6o/n on m miipyy^3X 6o jiom *:toh K)M.
iK nix KOMin>K)TepHHH CHCTCMMHH A3A <J>yHKn;Hi*r ^YYAax MeXaHH3MA• tr k h Hr aiimniaAar. C hctcmhAh creKMHr 7.3-p aypraap
caHax om
xaaa 0
nporpaMM
ax/7 ax xam
CTtK
Heap 6yioy duHatuuK caHax ou
cmeK Hb xamnartmbiH Oaaacax vusriand ecdes.
3ypar 7.3. KoMiibiorepwiiH cwcTeMMMH ctok
ir KHiir nporpaMMA ojioh HJiraaTaft apraap hsbtpyy^ 6ojiho. HaBTpyyjiCDii pi aac xaMaapq, ctck Hb KOMnwjwuHHH cTaTHKaap, 3CB n nporpaMM ftH/rnax y^A AHHaMHKaap TOAopxoftjiorAOTrjro nporpaMM amHJuiax TypmifA’ •I I HK CTCKHHH HHHT (MBKCHMyM) X3M5K33 Hb TOrTMOJT 6ai*A3r 60JTm-khhh X3M5K33 Hb eepqjierAe* 6aiiaar
Bhh eMHox 6y/i3r*r karcaa#raH lo ia ccH f Toflopxoftjiox floo xcarcaaJiraa xaara/iax ererflrtHftrt TOpratlcr ty p e d e f amHraaH 3a p iia * 6ajftcaH. 9 h 3 yefl jKarcaajrnw eep r e p jra ta ererflaK Kanranax maapfljiara rapBaJi nporpaMMHH Konon eepH/iejrr xh tw aaxHH KOMnHJuam xnftx ecxoft. X sp3B Har nporpaMM# eep eep rapm ftH ererfle jt x&arajiax erejcYYfl xspsrasx iuaap/yiara rap Ban H3r hjkh/i Koarott loiaccBiH 3apJia^THr HJiraaTaH ra p e ji 6ypT ro flopxo fin ox uiaftpii/iaraTaH iom. W HrscHasp nporpaM M HH ko/ihh X3M>k33 h xcsx , uaaiuHJi6a.fi koahh JiaBxnaa yychs. 3 h 3 acyy/uiur C++ xsjihh# 3arBap KJiaccaap xsaSapxaH iiiniizr.3>K Gojiho. 3arBap KJiacc Hb xspanisrHflaA aypbtn ererziJTHHH Topejui axHJiJiax epenxHii 3opHyjiaJiTHH KJiacc YYcr3Xl™r leBUieepaer.
H & u m , aapaax stack KJiaccbir 3arBap KJiaccaap Toaopxoftjrbe.
tem plate c c la s s Type> c la s s Stack (
in t top , M axSize;Type *s ta ck ;
p u b lic :S ta c k (in t M size ) : M axS ize (M size )
( s tack = new T yp e [M a x s iz e ]; top = -1 ; }-S tack ()
{ d e le t e [ j s tack ; } b oo l push (const Type ite m ); b oo l pop (Types i t e m ); b oo l empty ( ),( - b oo l fu l l , ! , ) * - -
CmeK
H n r3JK stack KJiaccHr 3aruap KJiacc Oaiijyiaap ToaopxoM JicoH to x h o jia o jia
iiypb in ereAJiHHH T e p e jif l axHJUiax o&beKTyyAbii **&r nporpaM M A yycraH amwrjiaac 6ojiho. 5Khih33ji63.ii stack KjiaccbiH char x e p e ji xaAranax CTeKHHr
(o 6ie icn> ir) xspxaH 3apjia)K auiHrjiaxbir A oopx nporpaM M HH kohooc xapuraaji.
void main() {Stack<char> s t (5 ); char *ss="stacks", ch; int i = 0;
while (* (s+ i) && st.push( * (s + i ) ))cout << "push <— " « * (s+i++) << endl;
while(st.pop(ch))cout << "pop —> " « ch « endl;
tt t 06'beKT Hi. HHHT TaBaH T3MA3TT XaATaJiaX CTeK IOM. X sp3B OHII il33px
nporpaMMA apBaH Syxsji t o o xanra jiax CTeKHiir H3M * a m n raax maap/yiara
rapnaji
Utack<int> i _ s t ( 1 0 );
i <C3H oSbeKT 3apjiaxaa ji xaHrajrrraH iom.
M. >'jpx s ta c k KJiaecHH ih u j y y h ctyHKHYYAHHH Syuaax T e p e ji bool Hb 3apHM>-• f + KOMHHJIHTOPT TO flOpXOHJIorflCOH 6a H A a r 60JI 3 a p ilM A Hb
11 widpxoHJiorflooryH 6a iifla r. 3 h s to x h o jia o j ia b o o l xepntiHF
■ mim bool ( false, true );
i >a TOAopxoHJix e r e x e f l xaHrajrrraH iom.
C + + X3JIHHH KJiaccaap x a p 'j z n a e n u u H m o d o p x o w ic o H TepeJ i y yc3 x 6e r e e A
<>i iuyyiHHH 30XH0H 6aHryyjia jm >ir xoA op xoH n ox private, yr e re x A e ji flsap m m iie e p e r flo x yHJiflJiYYflHHr T o flo p x o ii j io x public t s c s h x o e p x s c r s a c
it in n o r. stack m iaccb ir a n m rjiax nporpaM M Hb 36bxoh tyyhhh public x s c s r r
nipjiarflcaH c|)yHKHYYAHHr au inrjiaH e r e r f le j ia xaH flax Gojiho. IIporpaM M A11 .ink KjiaccbiH oObeKTOop CTeK TOAopxoHJioxoA stack 6aH ryyjiar«i 4>yHKu hi. Maxsize 6yxHH X3M5K33T3H MaccHB (3ypar 7.4 ) YYcr3 fl3 r - XapHH -stack yt rran i (JiynKH Hb cxeK H iir caHax o i ir o o c le j io e j in e .
Ii.nhfj 4>yHKH33p CTeKT SJieMeHT XHHX3A CTeKHHH OpOHT 3aax top *yiti.carliKHH y r ra H sra sp h s m s ta s x 6a cxeK AYYP3X YeA top Hb Maxsize > 11 .rraii 6o jih o . pop (|jynKH33p CTeK33C 3JieMeHT aisaxaA top xyBbcariHHH
i la H 'jrsap xoproAQ X 6a c tc k h h h xaMrHHH cyyJ i'u iiiH (xaM rHHH sxaHA
C 'TeKH ftr MaCCHBaap HJI3pXHHJI3X Ye# CTeKHMH X3M X 33 Hb t o i t m o j i roflopxoM JiorAaor y y u p eep 'iJ iex 6ojiom jk i’yh iom. Xap3B nporpaM M 3 o x h o i i iib cTeKT xa flra jia r^ax h h h t ererAJiHHH x s M x s s r h t is j i t s h M sflssc 6a ftx raxHOJiflOJifl creKH H r MaccHB amiirJiaH h s b tp y y jis x hb to x h p o m jrto h . Tsbh: mpHM 6o^JiorbiH xyBbfl CTeKT xa ^ ja jia r jiax ererflJiHHH X3M)k33r ypbflTOJiaH x jjuk M3fl3X 6 o jio m *x yh TOXHOJiflJiyyfl G a t if ia r . 3 h s to x h q jm o jia creKH ftr (H sr xojiSooct) x a r c a a j iT a a p H J ispxH H Jiaxsac e e p a p ra r y ft iom . C re K H H r A .ircaa jiT aap h jis p x h h jic h s s p t y y h h h x s m *3 3 Hb 6o flJ iorH H H e x iy ie e c x .iM aap i nporpaM M aaauu iax HBua^ flHHaMHKaap eep su ie r^ ex 6 o jio m x to h .
Vlnpaax KJiaccwH 3apjiajiTaap creKH H r TOflopxoHJTbe.
1 1 >|)xn 3apjia jrraap c t c k h h h Har aneMeHTh b erer/jam 6a xojiSo o c recsH xoepi « i :j3c t o it o x xarcaajiT a#H/i TOflopxoftjiorflcoH 6aHHa. t o p 3aarq h b
i ;i k aa/iTMH 3XJI3JI 6yK»y c t c k h h h opoHT 3aax 6a n u l l yrraTaH 6anx ye# CTeKii. xo o c o h 6aHHa. s t a c k () 6aHryyjiarH cjjyuKH h b x o o c o h c tc r yycrex 6a m .1 , k () ycTrarn<J)yHKB[hbCTeKHHrcaHaxoiirooc wteejiHe.Creicr3JieMeHT m Mx p u s h ( ) 6 o j io h 3JieMeHT aBax p o p ( ) cJjyHKiiyyn h b t o p 3aaratHH in JiiiM^KTaiiraap c t c k h m h op oH A y i i p ^ H i t r ryHU3Tr3H3.
H ' l a t e c c l a s s T y p e > b o o l S t a c k < T y p e > : : p u s h (c o n s t T yp e i t e m ) {
Kode *n e w _n o d e ; i i fw nod e = new N o d e ;
if(new _n ode) {new_node->clata = item ; new_node->link = top ; top = new_node; retu rn tru e ;
e ls e retu rn fa ls e ;} 'r,t
tem p late<c lass Type> booli Stack<Type>: :pop(Types item ) { i f (empty (),) {
cou t << "S tack is empty" « end l; retu rn fa ls e ;
e ls e {Node *temp = top ; item = top->data ; top = to p -> lin k ; d e le te temp; retu rn tru e ;
}I
CTeKHHH xoocoh scsxnwr iiiajirax empty () 4>yHicn Hb top 3aarn null yrraTan 3C3XHHT majiraxaA xaHnuiTTan iom .
tem p late<c lass Type> b oo l S tack<Type>:: empty() { i f ( ! top ) retu rn tru e ; e ls e retu rfi fa ls e ;
t I
stack m ia c c T c r e K jiYYP-SH scaxwiir u ia j i r a x cJ jyifKH T O f lo p x o iu io o r Y H - p u s h ( )
4 >VHKU H b c t c k t 3 J ie M e H T x n i i x f l s s n e w o n e p a T o p b in T y c j ia M X T a n r a a p
HHfiaMMK caHax o iirooc 3 a i i r ryxaiiH y e a Hb HeeuneH aBflar y rap ctckhhhX3 MJK3 3 Hb flHHaM HK OHH X3 MJK3 3 T3 3 P TOflOpXOHJIOraiior. H f lM f l HX3 HX
6 ofljTori.ru xyBbfl c t c k t a u iH m a ra a x 3a fi ( c t c k h h h xsm>K3 3 ) x yp aJ m ssT s ft h x
6aiiflar. Tsh h 3apHM 6 o jiJ iorb iH xyB b fl s c b b ji n p orp a M M 3o x H o r i a jiflaanb i
y jiM aac (peKypc 6ypyy amnrnax aspsr) c i ic t c m h h h c t c k a yY P 3X t o x h o j ia o j i
rap.ua r ynpaac n ew onepaTopoop H e e n e n c e H 3 a ft r h u l l s c s x h h t u ia jira x
H iaapflnaraTa ii. S u s c t Hb t s m a s h is h x 3 jt3 x 3 f l c t c k t acarcaa irr a m u n ia x Hb
M accHB au iH tv iaxaac h j iy y yHH xaraH , h jiy Y y p a n iH ira H iom . O e p e e p X3JI6 3 JI
nporpaMM a x im n a x sinua/i c t c k h h h x sm jk s s h x c s x 6 y io y 6 a ra ca x S o jio m jk to h
I >ni3Ji p n j i3 p x n w u m iir 6040x300 c t c k au iH raaH flap aax aJ iropm M biH fla ry y
I yMH3TT3H3.
1 p mispxHMJvmiiH 3xjisji33c xercreJi xypTSJi sjieM em 6ypHftr yHiunx4aa2 6a 3-p a/ixMyyawr ryftu3TT3H3 .X 3p3B onepaim 6 o ji c tck t xhhhs.
I X s p s B o n e p a T o p (y h j ia j ih h h T S M ^ s r ) 6o j i c t c k h h h o p o w r o o c x o e p
3JieMeHT an 'i, T34r33pr yr o n e p a T o p b iH yitfw iHwr ryimsTreH yp Aynr C teK T XHHH3.
♦ p HJiapxHHJUiHHH T e r c r e 44 x yp cH 3 3 p 6040JIT a y y c a x 601004 c t c k 43X
3/ieM eHT Hb P HJI3pXHH4JIHilH 3IJCHHH y p XapH y 60JIH0. 3 H 3 y e f l CTCKT
i aHU 3JieM eHT 6a « x 6o/ iho.
A iu ii33ji63ji, p HJi3pxnwJi3Ji asx sjieMeHTyya Hb floopx 6a iw iaap aapaaaaH '• ni|)JiacaH r s * y3be. (3;ieMcHTYY4Miir Tycraapjiax 3opHJiroop racjiaji •iminiaB.)
5, 6, 2, +, *, 12', 4, / , -
r III. juipaax epflHHH apH(j)MeTMK H43pXHH434T3H a^HJI K5M.
) IM <pxhhji3 ji Hb ep^HHH apH(J)MeTHK HJJ3pxHHJi34 r s x y3be 0 epeep xan6an flmuiHftH T3M^3r Hb onepaH,ayy,aMHxaa xoopoH# 6HHHr,nc3H SaiiHa. q
107
Eyjise 7
6afina. Mji3pxHHJi3Ji,n o j io h HH3HH YHJiflJiYYJl S o jio h ;iaBxap xaaJiryyAOpOJIXJOXUH X M p 3 3 p aJIXM M H TOO HX3CH , 3 a B C p U H yTTa H3M3rflrJ H 3 . H ttM
apwcJjMeTOK HJiapxuHJiJiMHr S o jiox n p o r p a M M H H aJiropHTM 3oxh ox Hb xflJiSap
611m iom. 3 h / ( a p n 4 )M e T H K HJiapxHftjuiHftr 6o,nox xaJi6a p H 3 r apraTaft
TaHHJIU'bH.
H o j lb U l n t3 M d 3 Z A 3 Z 3 3
B i m apn4>MeTMK HJiapXHHJIJXHHr 6 H M H X H 33 yfijIAJIHHH T3M/irniir YHJIfl3JIfl
o p o jm o x xo ep o nep aH flH H x o o p o H A 6HHfl3r. >KHUi33Ji63Ji,
A+B C-D E *F G /H
YiiJifl3JiA o pojiuo*; 6a if raa (a ,b ,c ,d ,e , f ,g ,h 6ojioh 6yx3jitoo r.M .) a p ry M eH T u r
o n e p a H S r e x Hspjisx Sojiho .
Yhjwikhh TaM.urMHH 33p3ni3Ji33C ra#Ha xaajrr aumrjiaH HH3PXHHJI3JI rsx Yhjwihhh rYHU3iT3TO3x jotapaaJuiHr Torrooflor. >Kh ui3363ji /(oopx xhuisshhh3 X H H H HJI3PXMHJI3JIJI3XJI33/I Yp)KMX yftJUlSJI XHHrfl33fl^apaa H b H 3 M 3 X YHJW3JI
XHHTA3X 6oji flapaax h jtjpx h h jisjw xaaJiT aurarjiacH aap 3xji33.ii; h s m s x yh juisji
XHftrflSH flapaa Hb y p x w x y itim a ji x n iir^ sx 6o jih o .
A +B *C {A+B) *C
T 3r B 3 JI n O J Ib lH H H H H 3 T 3 H M a T e M a T H K 'I apM (f)M eXH K HJJ3pXMHJI3JI fl3X
YHJIW iHHH TSMflrHiir xoep onepaH/tbiHX H b a p a (e M H e ) S h m h j k 6 o j io x e e p
X3ji63pniir0j(*: xapcaH 6aiiHa, H h m 3 3 c s h s 6iroi3rHiSr I I o j im i i x3Mfl3rji3r33
reac Hspjisflsr. >Kh u i 3 3 ji6 3 ji s m h q x >i£HHi33HYYAHHH xyBbfl floopx 6asi/t/iaap
6 h h h x 6 o j i h o .
AB+ CD- EF* G H /
j[(apaax acH m ssrssp h jisp xh h ju ih h h yftjms/i 6ypH ftr aJixaM ajixMaap Ilojibui T3Mfl3ra3re3Hfl xepByyJisn, xepBeceH xscraftr ryp [] xaajiTaa 6hhh3c Y3YY®i33-
(A+B) *C = [AB+3 *C = A B+C* (1)
A +B *C = A +[B C*1 = ABC* + (2)
(A+B) (C-D) = [AB+3 / [CD-] = A B + C D - / (3)
n o jib iu T 3M A 3r ji3re 3H H H H 3 r oHUJior 6 oji xaaJiT amHrjiaflarryH. E p a h h h
6 H u i 3 r H H H yea y h j w i h h h r y H u sx x sn isx ^ a p a a ju m r xaajrrHH xycJiaMxcxafl
TOflopxottJinrHiir (1 ) 6 a (2 ) jKHiussr x h u i h h x a p x 6 o j j h o . Tsrasji (1 ) 6 a (2 )
a c H m s s H H H riojibui T 3M ^ 3rJi3 r33 H fl xaaJiT 6 a H x r y H 6 e r e e a y h j w j i h h h
T3M flrHHH 6aflpjiajiaap ryHU3Tr3rfl3X aapaajiaji H b To^opxoHJiorjwor. Ilojibiii
CmeK
H JI3pX H H JI3 .H H H 3 M H 3 . b ) Hssx 3 y y h x a a j iT K i r c t c k s s c r a p r a H a . ( p H i i s p x H i t o J W H 3 M 3 x r y i i . )
>Kh u i 3 3 j i 6 3 ^ , A a p a a x q a p n ( J ) M e T H K H J i s p x H H J U i H H r f l s s p x a j i r o p H T M a a p x o p B y y / i s H p H J i s p x H H J is J i x s p x 3 H r a p r a a c a B a x t i r 7 . 6 - p 3 y p r a a p x a p y y j r b a .
U : A + ( B * C ~ D / E ^ F + G ) * H
ynuiuadcanm3Md3em CmeK H/iapxuumn
1 A ( A2 + ( + A3 ( < + < A4 B ( * t A B5 * ( + ( * AB6 C ( + ( * A B C7 - ( + ( - A B C *8 D ( + ( - A B C * D9 / ( + ( -/ A 8 C * D10 E ( + ( -/ A B C ' D E11 A ( + ( - / * A B C ' D E12 F ( + ( - / * A B C * D E F13 + ( + ( + A B C * D E F * / -14 G ( + ( + A B C * D E F A/-G15 ) ( + A B C * D E F A/-G +16 * ( + * A B C * D E F A/-G +17 H ( + * A B C * D E F * / - G + H18 ) A B C * D E F A/-G + H* +
3ypar 7.6. I lon b w raMAarnaraanfl xepByyrax
1 <> p typraac 3apHM yflu w iH iir ja iijifiap jiaa .
• 7 - p MepeHfl c tck h h h o p o ii jjaxb ypacax ( * ) TSM/jsr Hb ym iiH rncaK xacax ( - ) T3Mflr33C 3 3 P 3 M 3 J I 6 HH0p yMHp yp)KHX ( * ) T S M f l rH H r CTCK33C a B H P M / i 3 p x H i u i 3 M H 3 M H 3 . )Xapaa H b xacax ( - ) TSMflrHftr cTeicr x h h h s .
• 13-p M epenn yHumracaH H3M3X (+ ) t3M4T33c c tck h h h op o ii flaxb 33psr rtJBUiyyjisx ( ' ) 6a xyBaax (/ ) TSMnryya Hb en a ep sapsrJismratt, xacax () T 3 H H 3 r H b HXOLU 3 3 p 3 r jI3 J T T 3 H y H H p C T eK 3 3 C a B 4 , P H JX 3pX H H JI3JlA H 3 M H 3 . A a p a a H b y H u i H r a c a H h s m s x ( + ) T S H n r n i i r c t c k t x h h h s .
109
Byjisi 7
YHWuadcaHmsMdaam
C m e K Y u n d 3 n
5 5 p u s h 56 5 , 6 p u s h 62 5 , 6 , 2 p u s h 2+ 5 , 8 p o p 2 , p o p 6 , 6 + 2 = 8 , p u s h 8* 4 0 p o p 8 , p o p 5 , 8 * 5 = 4 0 , p u s h 4 0
12 4 0 , 1 2 p u s h 1 24 4 0 , 1 2 , 4 p u s h 41 4 0 , 3 p o p 4 , p o p 1 2 , 1 2 / 4 = 3 , p u s h 3- 3 7 p o p 3 , p o p 4 0 , 4 0 - 3 = 3 7 , p u s h 3 7
3ypar 7.5. f l o n b t i i T 3 M f l 3 m a r 3 3 H f l x e p B e c e H mxio p x m n r m v i r 6 o f l o x
HJi3pxHftJi3Ji Hb o r i e p a H U , orrepaxopooc r a a n a xaa.rcx aryyjix 6 o j i h o . OnepaTopyyflbiH ryiiusxrerasx ;iapaa;ia;r H b (1) 33par asbuiyy^x, (2) yp>KHX 6a xvBaax, (3) h s m s x 6a xacax x s c s h 3 33p3XJi3JnT3ii. Hjkhji 33p3ni3Ji 6yxHH y toiUiYYfl Hb HJispxHHJisw opcoH xtapaajuiaapaa (3YYH33C 6apyyn HHrasjifl) r y H t p T r s r a s x 6 o j i h o .
/lapaax ajrropHTM Hb q apucjpMexHK HJispxHiuuissc IIojh>iixx e p B e c e H p H J i s p x H H J i J i H H r rapraHa. 3hs ajiropHXM H b xaajiT 6 o j i o hoxiepaxopyyiibir xyp xaflxajrax cxex auiHraaHa. XepBYY-rccHHit iiapaa c t c k
XOOCOH 60JT0X eCT0H.
AnropH TM :
( p C xeK x ‘ ( ‘ x3M H3iTHHr xwta,1 ) [ T 3M fl3 rrH H r q h j is p x h h ju ih h h T e r c r e jwH 3 M X e X H e .
a ) Hs s x xaa^x xaapa jiflT a jt cxeKHHH o p o i ix o o c o n e p a x o p y y n u x aBH p
^.apaajiaji
B y j ia r 8
3 h3 6yJir33p Y33X ee P H3r myraMaH ererjyiHHH 6y t3U 6oji aapaariaji iom. flapaajiaji Hb ctckhhh H3r ajjHJi 3JieMeHT opyyjiax/raprax yhacsh xoep YHJWI33P TO^opxoHJiorAox 6a sjieMeHTHiir Aapaan/ibiH Tercrejw opyyoc, ;iapaaJuiUH 3Xfl3Ji33c rapaar. (3 h a 6ha apaaJiJiuH axjian, TercreJi rsac apwx 6ojiob4 yrraa flapaajuibm ajib H3r Tercrejw opyyjicaw 6oji scpsr Tercreneec iib rapra,a;ar.) 0 ep eep X3Ji63Ji sxsjdk opcoH Hb sxsjdk rapax ( f i f o — f i r s t in, f i r s t ou t) 3ap4Maap aaowjuiaflar.
Aaxb MauiHHbi aapaajian r s x msthhjish sxsjuk wpc3H Hb sxsjdk yhjih jiyyJI3X o/io h >khui33 AypbAaac 6ojiho. AjiH Baa 6ojjmt aMbjjpajibiH acyyn jib ir iuhhacsh i i ihHA/I33C KOMnbJOTepHftH nporpaM M 4JiaiibiH ojioh acyyzyiyynan, caHaa aB4
M iB T p Y Y W 3 r. )Khiu33Ji63Ji M am o jioh x3p3rji3r4T3H 6aHKHbi 3axnpaJi
x3p3rJi3rnaHHH u a r a i ir xsmhsh, 6yxHMflJibir apHJirax aopH Jiroop T yp rsH
(3 ) rypBaH K accT 30BX6H H sr flapaaju iaap y iijitiji3x r3C3H rypBaH coH rojiTH H
M irH H rC 0 H r0 » c 6 0 JIH0 . H3r3H TX3p3ni3r4H H H TO O H3M3r,H3H 3XHMM COHrOJIT
uiaapzpiara xaH raxryH 6ojicoh TOXHOJiaoJia yaaax x o ep coH rojiTb ir coHHpoxi>e.
X o e p #axb coH ro jiT H H y e ji iiiH H Ssp n pcsH x X3p3rji3r4 xaMFHHH 6 orw H o
napaaruibir coH rox Hb M apraaH ryii iom. Fsbh y r 6orwHO Aapaarcaim yh jih jiyy -^ x
X 3p3rji3r4H A Hb YHJi4HJir33HHH x3Ji6sp33C xaM aapaH 6 yca jj Aapaaju ibiH
x jp3rJi3rHA33c yaaaH YHlurYYJDK 6 o jih o . 3h3 toxhojijiojuoi x X3p3rji3r4HHH xyji33x xyrau aa Hb e e p AapaanajiA 3 o rco x o o c yjjaaH 6aii>K 6 o jih o . O e p e e p
X JJ163JI X X3p3FJI3r433C XOHHO HpC3H X3p3rJI3PI T Y P Y Y ^ GOJIOX IOM.)H3 acyyjyiur iuhhji3X H3r apra 6oji uihhs xspsnnsrHMiir ajib Aapaajiajm iotcboji xaMrHHH xypaaH YMJiluiYYJ13XM r xsjck erex 30xnuyyjiarq xspsrrew. Vyhhh Tyjm Aapaaiian flaxb xspsm sra 6yphhh hpcsh uar 6a YtaHJirasH#
111
Bynsa 7
• 15-p M epeH il xaax *) * xaa/iT ym unm caH aap ctck j& x H33X 4 ( ‘ xaa m XYPT3JIX 6yX OnepaTOpbir aBH P HJI3pXHHJI3Jm H3MH3. 3H 3 5KHIU33HHH xyBbr H33X ‘ ( ‘ xaajiTHbi apa ep ^ ee ram * H3M3X (+ ) TSM/pr 6aiiHa.
• 17-p MepeH/i q HJispxMHJiJiHHH cyyjiHHHH 3JieMeHT 6o jio x h yHiimr^aH P HJI3pXHHJI3JTil H3M3rij3X3,a CTeKT 2 onepaTOp yjmsac 6 aMHa. 3 flr33p o n e p a T o p y y A Hb q h jis p x h h jis j i fl3 x h s m s jit xa a x ‘ ) * xaa jiTb iH TyCJiaM5KTaiiraap CTeK33C aB*I P HJI3pXHHJI3Jm H3MH3. 3 h 3 3opHJiroop aJiropHTMbiH 1 -p ajixaivw ‘ ( ‘ xaajiTb ir c tc k t , *) ’ xaajiTbir q HJispxHiuisjifl
Tyc Tyc H3MC3H 60JIH0 .
Apn4>MeTHK HJi3pxMHJi3Ji Soaoxasspx ajiropnTMyyAbiH aaryy C++ nporpaMM6h h h x aau iw r yHU iHrn t u h r yJW33e.
I< i 'Miibiorepr Aapaaiuibir HX3Biu i3H MaccHBaap, 3CB3J1 h s t xoji6 o o c t xarcaajrr
.iiiiHiJiaH H3BTpyyjiA3r
yl,apaajijiwr Maccun aiUHiiiaH iisb tpyyto x
'l.iipaaJiJiur m s c c h b aiuH iJia n H S B T p y y n s x y e a M a ccH B b iH x s M X s s r s a p
n;ipaajia/iA xaArajiarAax sjieM eH TH H H t o o x«3raapJiarAaHa. H h m a s j i c m c h t
'■pyyjiax yeA AapaanaJi A yy p sx scsxHftr m anrax xspsrreft. 8 .2 —p 3ypraap n
* >MJK33T3H MaccHBbir AapaajiajiA x.3px3H a u m n ia x H r xapuraaa.
•)jieMeHT opyyjiax 6 o a o h raprax 6 y p r b a c k 6 a fr o n t xyBbcarnyyAHftH yrra
xapraji3aH Tyc Tyc H s ra sp h s m s i 'a s x 6 a yrra H b n —Tsfi t s h u y y 6 y w y MaccHBbiH
113
SyA32 8
front back
20 5 12 17
1 2 3 4 5 ••
front back
\ \
12 17 3 30
3ypar 8.2. flapaanribir MaccwBaap miapxuPiJiax
Terc^ejxn xypcHHH ziapaa 6yua>K MaccHBHH sxjisjia o ijh h iw m m h 3yyHHH #aryy ToiipHo. 3 h 3 yfrfupji Hb 8.3 — p 3ypraap HJiyy OHJiroM^rrol xapartfaHa.
X.4 —p 3ypaiTY3YYJicH33p AapaajuiHH AYYP3H 6a xoocoh Saiix tojibyya mxhji itoxuejm (back hi> front- hh h Q M H 6 X 3JieMeHTMHr 3aax) Swe/DK 6aiiHa. 3 h s
jop«ihjia00H00c 3aHJic xhhx 3opHJiroop Aapaax eepqjie jm m r xniie. Y yha hack 3aan* h l #apaajuibiH cyyji^kh h 3;ieMeHTMMr saax 6a front 3aarii H b /lapaajiJibiH cyyjpihhh 3JieMeHTHHH omhox (narwHH 3YYHmM scpsr) Saiipjiajibir »aax 6ojiho. 3 h s toxhojiaoji# AYYP3H tojiobt 6anraa napaajiaji Hb MaccHBHH H jr xoocoh sjieMeHT aryyjiax 6ojiho. XapHH f r o n t 6 a b a c k saar^yyA MaccHBbiH H3r 6aHpjiaji 3aax y^A Aapaajiaii xoocoh 6aiix Gojiho.
template eclass Type> bool Queue<Type>: : insert(Type item) { i f ( fu l l ( ) ) {
cout << "Queue is fu l l\ n " ; return fa ls e ;
)e ls e {
back = (++back) % MaxSize; queue[back] - item; return true;
})
116
JJapaajuin
template <class Type> bool Queue<Type>;; remove(Types item) { i f (empty ( ) ) (
cout « "Queue is emptyNn"; return fa lse;
)else {
front = (++front) % MaxSize; item = queue[front]; return true;
))
template cclass Type> bool Queue<Type>:: empty () ( if (fro n t == back) return true; else return fa lse;
I
ieraplate <class Type> bool Queue<Type>:: fu ll () ( if (fro n t =■ (back+1)%MaxSize) return true; else return fa lse;
,'lapaajuibir MaccHBaap MJispxHHJisx yefl ty y h h h x3m :hc33 h i> to itm o ji 6atixaac i anna xoocoh 6a flyypsH xejiuyYfiHHr anrax kojimh hsmsjtt 30xnuyyjiajrryy,a,bir iiKiap^ajK 6aftHa. TarBSJi jiapaaJiJJBir h s f xoji6ooct xarcaajxraap xspxsHII mxpyyjiaxHftrflapaaHHftH x scresc xapuraaa.
l apaajuibir Hrar x o ji6o o c t xa rca a jrra a p HJiapxuHJiax
I Id xoji6ooct xarcaa jrr hb jjapaajum r HSBxpyyjisx xaMrHHH 30xh m * to h apra* 1 m . Hsr x o ji6 o o c t xcarcaajiTMH sxhhh 6ojioh T e rc re jiH ta sjieMeHTHiir 3aax \ 1 >0 p 3aarHHHH TycjiaMaeraftraap flapaajiajifl xhhx 6yx yfijJOTYYUHftr rYHH,3TT3JK Cmijiho. flapaa®H>iH axM im ax 3apqnM ecoop xarcaaJiraH TercreJiHHH xoep uicMeHT33c 6ycaa sjieMenxs/i xarwax maapujiararyft Gaii/iar.
, l.ipa;uurbir Hsr xoji6oqct acarcaajrr auiwraan HSBxpyyrccHssp KOMiibioTepHHHI .max o ftr 30B 30^ffcTOH am nrjiax, HaamHJi6a.ii nporpaMMbiH ysH xaTaH ■i.mapbir A33HtJi¥YJW3r.Gepeep X3Ji63Ji sh s apra Hb aapaaju itir OTHaMHK ( .max oHfl 30XH0H 6aHryyjiflar.
II >r xoji6ooct xarcaaJiTHH oHHJiorooc xaMaapn sjjeM eHrnftr xarcaa jiiH H n»i c re jw opyyjDK, xarcaaJixHH sxjisjissc 3JteMeHX rapraxxspsrrsit 6aftarHHr anxaapax Hb 3y h t s h . 9 h 3 yh jiajihHr 8.5 —p 3ypraap ysyyjTbe. SjieMeHX
117
Byjiaz 8
opyyjiax T e rc re J iH H r f r o n t 3 a a m , r a p r a x T e r c r e j m u r b a c k 3 a a m rye T y c 3 a a H a
r3)K y3be.
front back
Q u Xa a p a a x o p y y n a x
3ypar 8.5. flapaannbir warcaamaap miapxMMnax
3 h 3 ro x iT O J T x io J iii 8 .5 — p 3 y p a rT Y 3 y y j i c H 3 3 p .n apaa ju iaac ‘ q ’ 3aH rH Jiaar
rap raxn aa AapaajiJibiH 3XJi3JiHHr 3aax f r o n t 3 a a m Hb ra p ra x y r 3aH rw iaaH b i
n e x t saarHHHH TycjiaM ^cra H raap A ap aa liHHH 3aHrHJiaar T e B e rry ft 3aax 6o jih o .
X apH H ^KarcaajiTbiH s x s h a 3JieMeHT o p y y jia H , T e r c r e j ie o c 3JieMeHT ra p ra x
t o x h o j ia o j ia f r o n t 3aam Hb ^KarcaaJiTbiH T e rc re jiH H H 3aHrHJiaaHW o m h o x
3aHrHJiaaHu; uiHJUKHX3,n; xYHap3Ji y 'lH pH a . 3 h 3 ToxHOJmJibir 8.6 —p 3yp raap
3ypar 8.7. n xyBbcarMHA onrox yxrbir Typ xaflran ax rapHbi 6ycpep
Ivparx \3YYncn33p n xyBbcar4H4 yrra ojirox HBU,a4 6ypyy opojrrbir Backspase iDH'uiyypbiH TycjiaMXTaHraap y cx ra * 6ojiho. 0 e p e e p x3 j163.fi opojiTbiH 3H3 Cim|)cphhh H3r TercrejH Hb 4 apaaJiJibiH, H eree xercreji Hb cxeKHHH 3apnMaap u i i u a x 6aitaa.
bool D e q u e < T y p e > : :i n s e r t ( T y p e item) {
Node *new__node = n e w N o d e (item);
i f (n e w _ n o d e ) {
i f ( e m p t y ()) to p = b a c k = new_node;
e ls e {
b a c k - > l i n k = n e w_node;
b a c k = back - > l i n k ;
}r et u r n true;
else ret u r n false;
iaBxap Tercre jiT ^apaajuiBiH xoocoh scsxh h t Aapaax e m p t y o t h u i y y h
<|>ynKij33p uiajirax 6ojiho.
t emplate <cl a S s T y p e >
hool D e q u e < T y p e > : :e m p t y () {
if(Stop) r e t u r n true;
else ret u r n false;
I apajiThb xa3raapjiar^MajiflaBxap TercrejiTflapaaJiJibra ,n;33px Deque KJiaccbir ftMA 16 —p 6YJirwHH T 3 M ^ 3 i T M e p H H r 3 a r B a p a a p xaiix ajiropHTMfl uiyyn aiiiwviax 6ojiho.
3p3M 6sT AapaaJDiHr h jispxhhjisx e ep n sr apra 6oji spsmGsjistacsh Aapaa/ia/i iom. 3 h 3 to x h o jia o jia AapaajiiiBiH 3/ieMeiiTYYA spaMfijisrACSH 6a iix 6a xaMruflfH eH Aep apsMSsTaft 3/ieMeHT HMarr AapaajuiHH 3X3ua 6aftAar. Hhm33c raprax y iijw reap iuyyAxaMrHHH sxhhh 3/ieMeHTHiirraprax 6a o< l ) xyrauaa 3apuyyjiHa. XapHH opyyjiax f f c S P i Hb AapaajuiHH T e rc re jie e c
124
Rapacuicui
3JieMeHTYYflHiiH 3P3m63T3w xaptuyyjiaH 30xhx 6afipjiajibir ojdk opyyjwar. Opyyjiax Yftnj&nA 3apuyyjiax xyraijaa hb aapaaiwHH 3JieMeHTHHH too n —
33cmyyflxaMaapax6ereeflO(N) 6aitea.
Tomooxoh X3MX33T3H 3p3M6sT flapaajuibir myraMaH 6 h iii ererAJiHHH 6yn];33p HJi3pxHHJicH33p tyyhh XHHTfl3X YftnnnHftr xypnacra,n;ar. Hhm 6yr3H Hb XOepTHH MOflHbl H3r X3Jl63p 60JI0X he a p IOM. Heap aUIHrJiacHaap 3P3M63T aapaajuibiH opyyjiax/raprax yh jw iyW 3# 0 ( l o g N) xyranaa 3apuyyjiax 6ojiho. /lapaa'iHHH Syjiresc xoepTMH Moflbir cy^aJicHaap heap ererfljm ftH 6yTHHHr x«;i6apxaH ohjitox Sereefl 11—p 6yjir33p flSJBrspsHryft y33X Sojiho. 11 —p Gyjisrr To.nopxoibicoH He a p m iaccHr 3P3m6st .napaanajw rnyya am nraax 6o/iho. 9p3M63T flapaajuibiH xsp sn issr 18 —p GyjiraftH 4>aftji maxax Huffman iuiropHTMaac xapaapait
125
ModumrHJiaaHaac HMap h s t 3aHrmiaaHA xsa xsash (H3T33C o jioh ) 3aMaap xypax 60/1 on octoh , 3 CB3 JI *iMap4 3 am daaxryH 6oji 3 H3 6 yT3 U Hb (m oa 6 mui) rpa(})
iyxaH Aapaa TycaA Hb e e p 6yjir3 3 p AS-nrspsHryii cyAJiax 6ojiho.
M o a h h xoJi6oocyyAaA n u r j is j i TOAopxoHJiAorryti 6ereeA x o ji6oocyyAbiH •iw rjis jiH iirTyxaH H 6oA.norooc xaMaapaH yhacsh 3aHrHJiaaHaac ao ou ioo scbsji YHAC3H 3aHrajiaa p y y r3C3H 6yrA H3r w r j is jm xaHAcaH M3T33p aB4 y3Asr. M o a h h y h a c s h 3aHrwJiaar HX3B4JI3H xaMrHHH A33p 6a iip jiy y jia H 3ypAar fie reeA yh a csh 3aHniJiaaHaac HMap H3r y 3aHnuiaaHA xypsx saMA x 3aH nuiaa roxH o jiA ox 6a iiB a ji y 3 a H n u ia a r x 3aHrwJiaaHbi Aoop S a ta a rsa c x3 A A 3 r.
M o a h h 3aHmJiaa 6yp Hb A33p33 3eBxeH raHii, 3aHrMJiaaraH uxyyA x o ji6orAox ()oreeA A33A 3aHrHJiaar ty y h h m ax 3aHrHJiaa rs jK H3pji3A3r. XapHH anHBaa la iirw jiaa Hb a o o u io o X3A3H 4 3afirHJiaaxaH x o ji6orAcoH 6atoc 6o jio x 6ereeA 1 >Ar33p 3aHrHJiaar xyyxad (asa ) 3aHrHJiaa rsac H3pji3A3r. 3apHM to x h o jia o jia jx 3aHrHJiaaHbixaa 3X 3aHrwJiaar scbs ji A3A 3aHrHJiaaHbixaa xyyxsA 3aHnuiaar (n 1 o jio h coHHpxox T oxw o jw iyyA rapax 6ereeA 3H3 yeA T3Ar33pM«r eBee scbsji aw 3aHrajiaa rsac H3pji3H TOAOTrox Hb 6aitAar. }K h ih33Ji63 ji 9.1 —p 3ypniHH p 3aHrHJiaa Hb r 3aHrHJiaaHbi an 3aHrHJiaa iom. ^ 3 a 3aHrMJiaaryM 3aHrHJiaar moeczonuuH 3am w iaa 6y io y naen r s x H3pjT3A3r. Y h a csh 3aHnuiaaHaac HaBM xypT3Jix x o ji6oocyyAHH Aapaa ju ib ir 3aM 6y ioy (canaa) M e m p r3H3.
I'yxaHH 3aHrHJiaaHbi A3A 3aHrH.naaHaac ca jiaa jicaH MOAbir dad Mod rsac H 3pA 3A 3r. G e p e e p x 3 a 6 s j i 3aHTHiiaa 6y p Hb e e p e e c e e a o o iu x h lanrHJiaaHyyAbiH xaMT H sr a sa moa yycr3A3r. >Khui33j i 63j i 9.1 —p 3y p a rr YJyyJicsH moa Hb H3r-3aHnuiaaTaH a o jio o h a sa moa, rypBaH~3aHnuiaaTaM H3r A3A moa, TaBaH-3aHrwjiaaTaH H 3r A3A moa, 3ypraaH-3aHraJiaaTaH h s f A3A MOAbir a ryy ji^K 6ai*Ha. C a jiaH rw A MOAHyyAbiH o jio H J io rn r o h rsxc H3p.J13A3r. }KhUI33JI63JI 9.1 —p 3ypaiT Y3YYJIC3H MOAHbl YHAC3H 3aHrHAaar x o ji6oocyyAbiH xaMT aB4 xaflBaJi a , r , e fs c s h y h a c s h 3aHrHJiaa 6yxHH MOAHyyAaac t o f t o x o h yaasx 6o jih o .
127
B y jia r 9
M o #
0MHex 6yjirYY^33P MaccHB, acarcaa/iT, aapaa jia ji, crex 33psr myraMaH erer^JiHHH GyTUYYflHHr y3C3H 6hji33. XapHH 3H3 6yJir33p mojx rs^K H sp jia r^sx uivraM aH 6hih erenu iH H H 6y ru w H r cyzyiax Gojiho. 3 h s ereroJiHHH G y tijh h h 30XH0H GaHryyjiaiiT Hb sjieMeHTyy^HHH uiaTajicaH, Harsac-ojioH rsc3H xapbijaaraap TOAopxoHJioriuior. 3 h s 6yJir33p 6wx m o#hb i epeHXHH 3oxhoh S aw ryyjia jiT , TO £opxoHJio/n\ 3apHM n yxa ji o H iy io r u ihh>k qaHapyy^, H3p TOMteoJiJibir Y33X33C ra&Ha TyyHHHr KOMnbroTepT HJiapxHH/isx apra 3aMyy#bir CViUiaX 60JIH0 . M o j[ Hb 3H3 HOMOHJH X3JI3Jm3rfl3X OJIOH HyXaJI aJiropHTMyyHblH r o j i U0M Hb 6o ji£ o i\ Hhmssc h m o^hw Tyxaif 6yp3H 6a ru o p u iro jn w Aapaa Aapaa^HHH 6yjirYYA33C xaMTaTraH ojdk aBax iom.
B h a h h h o jie p TyTMbiH aM bflpajm m o^hbi X3psrji33 6aftH ra toxh o jw o> k G a idar.
^Khiii33Ji63ji 3apMM xyM yyc eepH H H yp n iH H Gw^rHHr T3M£3ni3H xeTejDK xqhh
M o i l Hb HMap H3r HexuJiHHr xaHrax To.aopxoH aypM33p 3 o x h o h 6aHryyjiar^caH 3ciH eujiaciHyyd 6ojioh T3^r33pHHr x o a 6 o c o h xoJiGoocyy^bir aryyjmar. 3aHraJiaa Hb M3U33JuiHHr xa^rajiax epzuiHH H3r o6i>eKT 6a x o ji6 o o c
Hb xoep 3aHrHJiaaHbi xoopoH/jbiH xapbuaar TOAopxoHJi/jor. Xo;i6oocoop xoji6om coH moahm .napaajican 3aHrMJiaaHyyabiH acarcaa jnw 3aM r3H3. Mozihh 6ycaix 3aHrHJiaaHU xyp3x 3aM Hb aaBTaraamrYH To,aopxoHJior£ox Gojiom^kto# H3r 3aHrHJiaar mohhm (H3ryyp/YH^3c) y h d ca n 3aHrHJiaa rsac H3pji3,a3r. 9.1 —p 3ypraap MoziHbi H3r >KHLii33r y3yYJiJi33.X3p3B yH#c3H
jaHrHJiaaHyy# hb 0 3cb3JI 2 xyyx3A 3aHTHJiaaTaH 6aHHa. Mhm33c ep rerreceH Mo^Bir 3apHM toxh o jiao jia 2 -M o d T32K H3pJi3A3r. 0 xyyx3A 3aHnuiaa 6yxhh rercreJiHHH 3aHrajiaar sad cia d 3 a m iu ia a tsh s . Ta^aa^ 3aHrHJiaa H iftt ia p Hsr orerfrm aryyjiaxryH null 3aHTHJiaa iom. XapHH 2 xyy*3#t3H 3aHrajiaar d o m o o d
ic im u jia a T3H3. G proTreceH xoepTtm moahbi xyBbA d o m o o d WaMbht, y p m 6a sadciad 3CiMbm y p m rscsH HJiraaTan oHjrrojrryyA rapn HpA3r. T aAaaA 3aMHH ypT hb raflaa^ 3aHrajiaaHyyAaA yh a csh 3aHrHJiaaHaac xyp sx 3aMyyAi>iH HHHJi63p 6y io y raAaaA 3aHrHJiaaHyyABiH 6a n p jia x TyBiiiHHrYY^HHHI i H HJl6sp33p TOAOpXOHJIOrOTOr.
Moahbi xaMrHHH c y y ^ h h h TyBHiHHrssc 6ycaA tybhihha ao tooa uiHrHJiaaraap ryiiiPA AYYPr3rAC3H 6 ° ji TyyHHiir dyypan xoepTtiH moa rsH3. /1.YYP3H xoepTtiH MOAHBI XaMrHHH CYY-^HHH TyBUIHH 30BX0H Bfik
n 9H48PT3H XOepTHH MOflHbl MaKCHMyM 3aHrHJiaaHbI TOO HB TyBUIHH SypHftH MaKCHMyM 3aHTHJiaaHH HHM63PT3H t s h u y y SaftHa. HaHap 5 ecoop n 0H/J0PT3H XOepiHH MO/IHbl 3aHTMJiaaHBI MaKCHMyM 3aHrHJiaaHM TOO Hb
n-1
^ 2* = 2“ - 1
6aHHa.
Hauap 7: n ao tooa 3aHTHJiaa SyxHH ayYP3H xoepTBiH moahh enwep Hb oftpojmooroop i o g 2n 6aitHa.
AnHBaa xoepraH moa hb Har raAaaA 3aHrajiaar aryyjiax xoocoh m oahooc 3XJI3H yycAsr. M o a o h a idhhssp Hsr ererAOJi hsm sx npouecc Hb H3r raAaaA 3anrnjiaar xoep raAaaA 3aHriuiaa 6yxHtt H3r a o to o a 3aHnuiaaraap coJibAor. Xsp3B k TyBiiiHH asx raAaaA 3aHn«iaar co jih bo ji yr m oahh a o to o a 3aMHH ypT Hb k yTraap ii3M3rA3X 6a xapHH raAaaA saMbiH ypT k+2 yrraap (k tyb iiih h 33 c H3r raAaaA saHTHJiaa xacarAaac, xoep raAaaA aaHriuiaa k+ i tybu ihh a opHo) H3M3rA3H3. 3 h 3 nponecc Hb a o to o a 6a raAaaA 33MHH ypT T3iT3fi ts h h y y 6afixaac sxjisx 6 ereeA n arcxaM SypT a o to o a 33mhh ypTaac xoepoop rniyy yrraap H3M3rA3X SafiAar.
B i n T r e e ( T y p e item) : d a t a ( i t e m ) , 1 ( N U L L ) , r(NULL) (};
'-BinTree () ;
v o i d s e t r ( B i n T r e e *rp) { r - r p ; }
v o i d s e t l ( B i n T r e e *lp) { 1 = l p ; }
B i n T r e e * g e t r () { r e t u r n r; }
BinTree* g e t l ( ) { return 1; } void p r in t () { cout << data; }
X oepraH m oh hm aaHrHJiaa Hb B i n T r e e 3arBap KJiaccaap To^opxowjior/iox 6ore0/i ererzteJT 6ojioh 3YYH 6a 6apyyn caJiaaHyyubir 3aax 3aar*iyynbir aryyjrac 6aftHa. s e t r o , s e t l ( ) rauiYYH 4>yh k uyy^ Hb TyxaftH 3aHrHJiaaHA 6 a p y y H 6 a 3yyh i p # Mo^bir xoji6o>k orox 6a xapHH g e t r (), g e t i () ramyYH ( j p y n K i i Y Y A
Hb TyxailH 3aHrH^aaHbr 6apyyH 6 a 3 Y Y H #3# MOflbir 6yuaaHa.
nporpaMMbir xaji6ap 0 HJir0 M)KT0 H 6oJirox YY#H33C HJiapxMHJumftr 30BX0H H3M3X 6a y p m x Y iJiiiJiPiHH xyBbfl onepaHXiyyzibir T3M#3iT33p TOflopxoHJioH aBb«. Hapaax k o^h h xscs r Hb Flojibin TSM flsm srssrssp e re r# ceH MJi3pxHHJiJi33c xoepTbiH mo# 6aHryy;ma.
B i n T r e e < c h a r > *ptree, *child;
3 t a c k < B i n T r e e < c h a r > *> stack;
c h a r * p o s t f i x = " a b c + d e * * f + * " , c;
int i = 0; '•
Mod
while (c 58 * (p o s t f ix + i + + ) ) { p tree = new B in T ree<ch ar> (c ); i f ( c == ' + ' || c=='*') { .
s ta c k .p o p (c h ild ); p t r e e - > s e t r (c h i ld ) ; s ta c k .p o p (c h ild ); p t r e e - > s e t l ( c h i ld ) ;
6ereejx xoep xo ji6o o c t acarcaanTHH ajiw i hsm sjtt 3aarq opyyjiaH 30XHi*yyjDK e n 6ojiox 6ojiobh TYYHHHr koa^uiox Ye# h jiyy TOBerrsH H3M3JTT axouuiaraa inaapAar^aHa.
XoepTbiH moaoop ryflx
M oa GanryyjicHLi Aapaa apHr^ax H3r 3Yhji 60j i moahh 3aHnuiaaHyyAaA cHCTeMT3Hr33p ohhx acyyAaJi iom. 3 h s yhjiasji Hb uiyraMaH ;»carcaajiTaA xhhtasx yhjwimhh a^HJi 3aarHHHH TycjiaM^KTaHraap ryniJsTrsrASx 6ojiob*i moa Hb uiyraMaH 6hui 6yT3U y*mp TQAopxoH tooh h HJiraaxaH 3aMyyAHH xyBbA XHftrA3X 6ojiho. Hhmssc shs yhjiasji Hb moahh 3aHrHJiaaHyyAaA HMap Aapaajuiaap xyp3X33c xaMaapq flJiraaTanraap TOAopxoHJiorAOHo. Ep Hb moahh aJiHBaa 3aHnuiaaHA y ^ c s h 3aHTHJiaaHaac 3XJI3H xypsx 6ojiom3ktoh Sojiobh 3aHrHJiaa 6ypT ajib 6ojiox HBcaH 3aMaa AaBTaxryHrssp o4HX xspsrren .
M o a h h 3JieMeHTyyA3A ohhx yAaax ( in o r d e r ) apra 6oji “ sx jissa 3yyH asa moaoha ohooa, Aapaa Hb y r 3aHrHJiaaHAaa Hp33A, s u s c t Hb 6apyyH A3A MOAOHA OHHX” T3C3H peKypCT AYPM33P XHHTAASr. G ep eep X3Jl63JI TyxaHH jaHrHJiaaHH ererAAHHr xsb jisxhhh om ho 3yyH asa m oah h 3JieMeHTyyAHHr X3BJI3X 6e re eA xapHH 6apyyH A3A m oah h sjieMeHTyyAHHr cyyJiA Hb X3BJI3X iom. 3 h 3 a p rn r aurarjiaH apH<J)MeTHK h jispxh h jijih h h MOAHr xsb jisbsji YHJIAAHHH T3MA3r Hb ffyHAaa 6HHHrA3X apHcJ)MeTHK MjfI3pXMHJUIHHH epAHHH 6n4Ji3rHHH X3Ji6sp rapHa. M3A333K 3H3 a p rn r apn(J)MeTHK h jispxhh jis jia aiim niax yeA xaaJiTyyAHr Tooijoac opyyjiax hsm sjit aacHJi uiaapAJiaraTaH. 3 h s ap rn r rmziu xbmiyi apra rsac xsjiAsr.
v o id tra v e rs e (B in T re e< ch a r> * r t ) {B inTree<char> * c h i ld ;Queue<BinTree<char> *> queue; q u e u e . in s e r t ( r t ) ; w h i le ( ! queue. em pty( ) ) {
queue. remove ( rt.) ; r t ~ > p r in t ( ) ;i f ( c h i l d = r t - > g e t l ( ) ) q u e u e . in s e r t (c h i ld ) ; i f ( c h i l d = r t - > g e t r ( ) ) q u e u e . in s e r t (c h i ld ) ;
}} .
,H,33px nporpaMMBiH x s c s it aiim niacaH #apaajiaji# 8-p 6YJi3rTT0#0pX0HJiC0H Queue 3arBap KJiaccBir aurarjiacaH. 3 h 3 (JjyHKijHHH ko# hb yH#C3H#33 1-p aprMH (ypBTaac oiih x aprbm ) ajiropHTMTan toctsh 6 e ree# CTeK 6a#apaajuibiH a^cHJiJiax 3apHMHH ajiraar xapyyjiax H3r jkhuiss 6ojiox k >m .
X o e p T b iH M OAbir M a ccu B a a p HJiapxHHJiax
(1 ) n 3JieMeHTT3H t r e e [n ] MaCCHBBIH t r e e [ 1 ] 3JieMeHT Hb MO#HH yH#C3H
136
Mod
3aHnmaa 6ojiho.(2) HMap H3T t r e e [k] 3JieMeHTHHH XyBbA t r e e [ 2k] SJieMCHT Hb 3YYH A3fl
(xyyx3A) 3aHrHJiaar, t r e e [ 2k+1 ] 3JieMeHT Hb 6apyyH A3A 3aHnuiaar Tyc TyC HJI3pXHHJIA3r.
XapHH C++ X3JIHHH XyBbA (MaCCHBHHH HH^eKC T3T33C 3X3Jm3T y^Hp) 3XHHH t ree [ 0 ] SJieMeHTHHT MOAHbl yHAC3H 3aHrHJiaaraap TOAOpXOHJIOX yeA A33PX TOAOpXOHJIOJIT Hb 30pTOJIOTer. 3H3 TOXHOJIAOJm tree [ k] 3JieMeHTHHH 3yyH A3A 3aHTHJiaa Hb t r e e [2 k + i ] 3^eMeHT33p, 6apyyH rbM 3aHTHJiaa Hb t ree [ 2 (k+1) ] 3JieMeHT33p Tyc Tyc TOAOpXOHJIOrAAOT.
XoepTbiH m o a Hb r y ta p f l 6h h i toxhojiaojia MaccHBaap HJispxHHJisx Hb ToxHpoMacryH 6aHAar. M oAbir MaccHBaap HJi3pxiiHJi3H aiirarjiacaH 3apHM xspsrJissr AapaaHHHH 6yjiryYA33p Y33X 6ojiho.
3paM6aji3jimuuh j mutin apayyd
erer^J iH H H to p b j i t s h M accHBHH xysbA 3p3M63Ji3JiTHHr ryH ii;3T r3X33p TOAOpXOHJDK erceH.
XspsB 3P3m63ji3ta3X h h h t erer^eji Hb caHax oha xypsjinsxyMi]; 6araX3M3C33T3H 60JI d o m o o d 3p3M63Jl3jVn T3H3. Xsp3B erer^JIMHH X3M2C33 Hb AOTOOA 3p3M63JI3JIT33p XHHrA3X33pryH HX X3M2K33T3H 60JI eaddC ld 3p3Ai63Jl3Am T3H3. 0 ep00p X3JI63JI ra^aafl 3p3M63JI3JITHMr OTCK 3CB3JT c0p0H30H Tyy3aH A33p ry H ij3 T r3 A 3 r. 3h3 homoha aBii Y33X apryyA Hb YHAC3HA33 aotooa 3p3M63Ji3JiTHHH apryyAaA xaMaapHa.
9p3M63J13JITHHH 3XHHH 3HTHHH aJITOpHTMaap COHTOH 3p3M63JI3X apTHT aB4 Y3be. 9h3 apra Hb MaccHB #axb xaMTHHH 6ara sjieMeHTHHr ojdk MaccHBHH 3XHHH 3JieMeHTT3H cojib>K, #apaa Hb y#aax 6ara sjieMeHTHHr ojdk MaccHBHH xoep #axb 3JieMeHTT3H co jihx 6an#Jiaap MaccHBHH 6yx 3JieMeHT 3p3M63Ji3r#35K#yycTajx ryHUSTrsx apra iom. 3h s apra Hb yM3>k 6aiiraa xscsr 6yp33c xaMrHHH 6ara 3JieMeHTHHr co h to x 6anraa ym p c o m o h 3P3m 6s a 3x
a p za T33K H3pJI3C3H.
COHTOH 3P3M63JI3X ajiropHTM Hr #apaax s e l e c t i o n S o r t ( ) 4>yHKIi;33p TO#OpXOH JUIOO.
,tem p la te< c la ss Type>"v o id s e le c t io n S o r t (T y p e a [ ] , i n t n) {
in t i , j , min; f o r ( i= 0 ; i < n - l ; i+ + ) {
min = i ;
140
3p3M6aji3jimuitH 3H8UUH apzyyd
f o r ( j - i+ 1 ; j<n ; j++) i f (a [ j ] < a [m in]) min = j ;
6ypT H3r co jih jit 6a n - i xapbuyyjiajiT xh jdk 6aHHa. Hhm33c h h h t xapmyyjiajiTUH too 6yioyajiropHTMbiH aacHJuiax xyrauaarHJispxniiJisx f (n) 4>yHKE(HHH yrra Hb
f (n) = (n-1) + (n-2) + ... + 2 + 1 = n (n -l)/2 = 0 (n2)T33K TO^OpXOHJIOrflOHO.
COHTOH 3p3M63JI3X aJITOpMTM Hb 6ara TYJIXYYPT3H TOM 6HHJI3r 6yXHH ererAJiHHH xyBbfl uiyraMaH aHCHJiJiajjar- }Khijli33ji63ji Tyjixyyp Hb 1 yr 6aitxaA 6HHJI3r M YT33C TOITOX 60JIH0. 3H3 TOXHOJmOJW XapbUyyjiaJIT Hb 1 H3DK xyrauaa 3apu;yyjDK 6awxaA cojihjiuox yhjijjsjw m hsdk xyraijaa aapuyyjma.
MaccMB ra p ra H aBHa. Y^aax aJixaMA, YYcr3C3H xoep 3JieMeHT 6yxhh 3p3M63Ji3rAC3H MaccHBTaa MaccHBbiH rypaB Aaxb sJieMeHTHHr opyyjiax SaHA-Jiaap MaccHBHH TercreJi xypTSJi 6yx sjicm chthhh xyBbA AaBTaH ryHU3TT3H3.
fl,3 3 p x a jiro p H T M H H w h i l e A O T O O A ^aBTaJITaap UIHH3 3 JieM eH TH H r 3p 3M 63JI3rflC3H T3X T y y H H H O M H 0 X 3JieMeHTYY533C TOITOX M B C C H B H H X3C3IT
f (n) = 1 + 2 + 3 + ... + (n-1) = n (n -l)/ 2 = 0 (n2)
T35K TO#opxoHJior#ox 6a xapbuyyjianTbiH to o h o o c xoep #axHH 6ara co jih jiuox YHJI#3JI XHHr#3H3. Y lIHp Hb OpyyjiaH 3P3M63JI3X aprbiH 3JieMeHTHHH llIHJUKHJITHftr COJIHJHJOX YHJI#JIHHH XaraCTaH a#HJI T3>K Y33JK 60JI0X IOM.
XapHH #yn#a>K toxh o ji# o ji# # o to o # #aBTannr Hb (k - 1 ) / 2 xapbijyyjiajrr XHH#3rT3B3JI
f (n) = 1/2 + 2/2 + 3/2 + ... + (n -l)/2 = n (n -l)/4 = 0 (n2)
3hH 6h# 3p3M63J13JTTHHH 3HrHHH apryy#bIH H3r 60M60Jir0H 3P3M63JI3JITHHH aJiropHTM Tan TaHHJluax 6o jih o . 3 h s a p ra Hb MaccHBbiH 33pr3Ji#33 3JieMeHTYYilHHr xapbuyyjiaH , waap#JiaraTaH 6o ji yT rw r c o jih x 3aMaap XaMTHHH HX 3JieMeHTHHT XOiilH HIHJDKYY-K3 *1 MaCCHBblH T erc reJ I# 6aHpjryyji#ar. HHr3CH33p xaMrHHH hx 3JieMeHT suchhh 6aiipjiajiaa o jiox 6a YJi#c3H 3JieMeHTYYAHHH xyBb# m oh Y»Ji#JiHHr #aBTaH xh h ch ssp y#aax xaMrHHH HX 3JieMeHT MaCCHBblH T0rcr0JIHHH 0MH0X 6aHpJiaJIbir 33JI3H aBHa. H hm 6an # # a a p MaccHBbiH h h h t 3JieMeHT 3p3M63Ji3r#3ac # yycT a ji
ryHU3Tr3#3r. 3 h 3 ajiropHTMbir #apaax bubbiesort () cJ>yHKU33p Y3YY-117133-
tempiate<class Type> void bubbleSort(Type a [ ] , int n) { fo r (in t i= n - l ; i>0; i - - )
fo r (in t j=0 ; j < i ; j++)i f ( a [ j ] > a [ j +X] ) swap(a, j , j+1) ;
Ta#aa# #aBTajrr i Hb MaccHBbiH T e rc re jie e c sxjisx 6a MaccHBbiH 3JieMeHTYYfl xaMrHHH hx yrraacaa 3XJI3H #aBTajiTbiH ajixaM 6y p t H3r H3r33p33 6aHpjia#aa
144
3p3M63Jl3JimilllH 3H2UUH CipZVyd
ojiho. XapHH aotooaAaBxajiT j Hb YJI435K 6aiiraa 3/ieMeHTYYflHHH xyBbA Gyioy i xypran MaccHBbiH 3XJI3JI33C 33pr3JiA33 BJieMeHTYYAHHr xapbuyyjma. TyxaMM ajixaMA i —hhh GapyyH xajiA opiunx sjieMeHTyyA 6anpjiajiaa o jicoh 6amx ryn T3Ar33pT xapbuyyjiajiT xhhx maapAJiararyH. 3 h 3 apra Mb coh toh 3p3M63Ji3x apram ft to c t s h yh jiasji xhhx Sojiobh H3r sji^m chthhh daiipuanbir ojioxbiH ryim, TYYH33C h jiyy YHAA3JI xhhast.
0 1 2 3 4 5 6 7 8 9 1011 121314A S 0 1RIT I I | N | G | E X|a |M|P l |e |
l° 1 2 | 3 | 4 | 5 | 6 | 7 | 8 9|10|11|12|13|14|
14 7
EyA3z 10
S u 3 ajiropHTM Hb ksorted H3IT3H ts h ijy y 6yioy erer^BJi Hb 3p3M63Ji3rAC3H ye# xaMrnHH ueexeH xapbityyjiajiTbir xhhhs. 3 h s TOXMOjmojm
1* (2n - 2)/2 == n-1 = O(n)
xapbuyyjiajiT xHwr/pHS. XapHH xaMTHHH Niyy toxhojiaoji 6yioy kaorted Hb n - i
6aHxa,n;
(n-l)n/2 = 0 ( n 2)
xapbuyyjiajiT xHiirA3H3.
B eM 6eJ ireH 3P3M63JI3JITHHH a jirop H T M H r 3 P 3 m 6 3 ji3 jith h h y jtaak ajiropHTMyy^biH Hsr rs^c xsjdk 6ojiho. Tyxaiui6aji coHroH 3p3M6sji3x apraraH xapbuyyjiaH 3apHM /jyTarAa/iTaH Tajiyyflbir xapac 6 o jiox iom. BeM 6e^reH 3p3M63JI3JITHHH apra Hb COJIHX yHJWIHHr flOTOOfl AaBTaJITaH# XHHA3r 6oji coHroH 3P3M63JI3X apra Hb a o to o a AaBTaJiTaHfl co jih x yiinwsji x h iIip ityh . T yyh ssc ra^Ha 3JieMeHT 30BX0H 33pr3W 33 6aHpjiaji/iaa u ih jdkh jit XHTOsr 60JI COHTOH 3p3M63JI3X aJITOpMTMA SJieMeHT XOJI UIHJDKHJTT XHHflST 6a 3H3 6aHpiiaJi Hb ty yh h h 3u;chhh 6anpjiaji 6ojm or.
MaccHBHH 3JieMeHTYYOTHH 3P3m63Jichhh aapaa opboji 30XHX Ganpjiajibir ypbA^KJiaH M3A3>K 6aHHa r3C3H y r. 3 h s ap rb ir 10.3—p 3yparT aBcaH >KHixi33HHft xyBbA Tatf Ji6apJiaa. 3 x h h h sacm ch t a Hb xaMrHHH 6ara sjieMeHT yHHp 30XKX 6anpAajiaa (p [o ] * o ) 333JiC3H 6aHHa. Hhm a xoepAaxb 6anpjiajiA yAaax 6ara sjieMeHTHHr (p [ i ] h h a ck c tsh ) 6anpjiyyjiax ecTOH. Y yh h h Ty/iA a [ 3 MaccHBbiH xoepAyraap GanpAajibir MeJieeJiex xspsrrsH . a [ 1 ] sJieMeHTHiir Typ t xyBbcar^HA xaAraJicHbi Aapaa a [ p [ i ] } 3JieMeHTHHr a [ i ] pyy h iha- )kyyjih3. Y yh h h Aapaa p [ i ] hhackc asx 6aiipjiaji qeJieojierABHe. Tsbh 6ha 3H3 6aHpjiajiA opox sjieMeHTHiir M3A3X 6 ereeA 3H3 Hb a [] MaccHBbiH p tp [ l ] 3 HHAeKCTSH 3JieMeHT iom. 3 h 3 YWJWJiHHr uaain Ypr3Ji^KJiYYJI3H t xyBbcarHHA ty p xaArajicaH 3JieMeHTH#H 6anp qeAeejuierATOJt xhhh3. TyxaiiJiGaJi MaHaii 2KHIH33HHH XyBbA t= a [13 ; a [ l 3 = a [ 1 0 ] ; a [10] =a [123; a [123 =a [13; a [ l 3 = t ; T3C3H sxhhh 6yA3r mHJDKYYrtsJrr xhhxa3H3. p [i3 = i 3AeMeHT Hb SanpjiajiAaa ophhxcoh 6anx tv jia ty y h h h t AaxHH aBH Y33X maapAnararYH iom.
templatecclass Type>void sort (Type a [3 , int p i ] , in t n) {
in t i , j , k ,* Type t ;fo r (i= 0 ; i<n; i++)
i f (p [ i ] J = i ) { t » a [ i ] ; k = i ; do |
j = k; a 111 = a [p [ j ] 3 ;k ® p Cj3 ; p [jJ * j ;
} while (k I *= i ) ; a [ j ] ==. t ;
J}
f ls s p x sort () 4>yHKU3A HP3X p [ ] HHAeKCHHH M3CCHB Hb in d e x S o r t () ({>yHKH33C YYCC3H HHAeKCHHH MHCCHB 6aHX eCTOH. s o r t ( ) (fcyHKU Hb 3JieMeHT xoopoHA cojihx yh jiaah h h T oo r neepYY^cH33p 3p3M63Ji3JiTHHr xypAacraAar.
r3XA33 3H3 ajiropHTM Hb Gh h a s f h h h X3M)K33H33c xaMaapax 6 ereeA 6ara xsm ksstsh 6H4Ji3rYYAHHr 3p3M63A3X3A aq xoJi6orAOJi 6araTaH 6aHAar. Ynnp 3H3 aAropHTM A HHACKC XaAraJiaX H3M3JIT 3aH (HHAeKCHHH M accHB)
w aapA axaac raAHa 3AeM eHTyyA3A uiyyA 6 h h i xaHAajrraap (a [p [ i ] ] ) xapb i i y yAaxaA m a a p A a rA a x h s m s j it x y r au aa 3 ap u yy jiA a r. XapH H 6H4A3rYYOTMH X3M>K33 acap to m y ^A 3H3 apra Hb 6ycaA apryyAaac h a y y YP AYHT3H 6aMnar.
3 h 3 (aHX d . l . s h e l l 6oJioBcpyyjicaH) aJiropHTM Hb opyyjiaH 3psM63Ji3X aprbiH 3/ieMeHTHHH succhhh 6aHpjiajiAaa opox uiHJDKHJiTHHr xypAacraH ca tepyy jicaH .
OpyyjiaH 3p3M6sji3X apra Hb xapbuyyjia jnw om hox 3JieMeHTYY.flT3H a3C AapaajiaH xhhx, uiHJDKHJiTHHr 36BX6H 33pr3jm33 6aiipJiaiibiH xyBbA XHHAsr yqpaac y^aaH 6aH^ar. >Khui33ji63ji xaMrHHH 6ara 3JieMeHT MaccHBbiH Tercrejw 6aHBan n u ih jdkh jit xhhchhh Aapaa 6aiipjiajiaa o jiox 6ojiom>ktom 6ojiho. T3rB3Ji she 1 1 -hhh apra Hb opyyjiaH 3p3M63Ji3x aprbiH sap^Maap axHJiJiax 6 o jiob4 xapbuyyjiajiT 6o jio h uiHJDKHJiTbir to a o p x o h aJixMbiH 3aHTaiiraap xoji xoji XHHAsr.
h1=1 T3B3JI hstl=3hg+ i rsac TOAopxoHJiorAox 6a Aapaajian ht+2 N 6aiix ht yTraap rerceHe. 3ha33c 1 ,4 , 13, 40, 121, 364, 1093,... ts c sh Aapaajiaji yych3-
10.4 —p 3yparr Y3YYYJIC3H k h u is s h a n =15 yqnp h —h h h 13, 4, 1 tscsh ajixMyyAaap 3p3M63Ji3JiTHHr x h h x 6aHHa. 3 xh h h ajixMaap 1 a s x 6aHpjianbiH a sJieMeHTHiir 14 a s x 6aHpjiajiM H l 3JieMeHTT3H xapbuyyjiac, 2 Aaxb GanpjiajibiH s 3JieMeHTHifr 15 Aaxb 6anpJiajibiH e 3JieMeHTT3H xapbuyyjDK (cojibac) 6aiiHa. JJapaa4HHH anxMaap 1 ,5 ,9 ,1 3 Aaxb 6aiipjiajiyyAbiH a , t , e , p iJieMeHTYYfl y r 6aHpjiajiAaa a , e , p , t rsac 3p3M63Ji3rA3X, Aapaa 2, 6, 10, 14 A3X 6aiip jiaJ iyyAb iH 3JieMeHTYYA r s x m s t h h j is h 4 a jixaM Ta iiraap I'YftU3Tr3rA3H3.
149
Eyjiae 10
A S O R T I
0
a J e ] o 1r |t
n |g |e |x [/T[m [~f |TTe
N G E X A M P L S
OH
A E A G E N M P L O R T X S
A A E E G L M N O P R S T X
3ypar 10.4. 3 p3m63j13jithmh Shell-MMH apra
3 u c H f iH (a iix M H H 3aft 1) a n xM a a p o p y y j ia i i 3paM 63J i3x a p ra X H iir a s x 6a M accH B 6yp 3H 3p3M 63;[3 i'A3 iK fly y cH a . C y y ji 'im h h s h s a jixaM a H p s x s a MaccHB
H b x a p b u s a H ry ft r a a p s p s M S s j i s r a c s H G a f ia a jr r a i i S a ft x y> iH p o p y y j ia H
3P3M&3JI3X a p ra Hb 6 a p a r u iyraM aH X H H ransr.
9p3M63JI3JITHHH S h e ll-H H H aJITOpHTMbir aapaax s h e l l S o r t f ) <t)VHKH33p Toflopxottju ioo.
t e m p l a t e c c l a s s T ype>
v o i d shel l S o r t (Type a [], int n) {
int i, j, h; T y p e t;
for(h=l; h<=n/9; h = h * 3 + l ) ;
for( ; h>0; h/=3)
fo r(i=h ; i<n; i++) { t = a [ i ] ; j = i ; while (j >=h && t < a [ j - h ] ) {
a [ j ] i a [ j - h ] ; j -=h;
}a Ij] mkt;
}}
J lssp x cjjyHKUHHH 3xhhh aaH aaBTajrraap ht 6 y io y n -h h h yrraH fl Toxnpox xaM raiiH tom aJixMbir T o a o p x o ilo c B a taa . JJapaaHHHH f o r aaBTaJiT 6y ioy xaM raftH raaHa TaJiHH aaBTaJiTaap h-HHH y r r a r 3 aaxHH Saracrax Saiianaap
150
3p3M63JBAmuuH 3hsuuh apeyyd
n/ixMyyAHH y r r u r aBHa. XapHH a o to o a xoep AaBTajiTaap h aJixMaap i ojiopxoHJiorAox 3JieMeHTYYAHHr opyyjiaH 3p3M63Ji3X apraap 3p3M63Ji)K fiaiina.
; :h e i i - H i iH an ropH TM aap x h Mt a s x xapbuyyjia/iTM H t o o n 3/3 —aac X3T3pA3rryH.
A j h o p h t m h h axHJUiax AyHAax xyrauaa o (N 1 •25) 6a xaMrHHH Myy t o x h o jia o j ia
o(ni s) 6aiiAar.
Tapxanrrur toojiox
AjiHBaa 6oAJioroA spsMSsJisjrraftH apryyAaac rnyyA aBM aiirarjiaxbiH omhs yr 6 o a jio th h x o o OHHJior ih h h x , H oxueji 6attAaJiA ToxnpyyjiaH coH rox , uaauiHJi6aji ajiropHTMbir e e p u ie x 6ojioh uihhs apra carrex xspsrrsH . l'yxaHJi6aji, 1 — 33c n juiraaTaft (AaBTarAaxryH) yrraTaH tyjixyyp Taji6ap 6yxhh n e r e r j u m & r 3p3M63Ji3X ajiropHTMbir TOAopxoiijrbe. 3 h s 6oAnorbir hsm sjit b MaccHBbiH TyciiaMacraftraap
£ o r (i= 0 ; i<N ; i+ + ) b [ a [ i ] J = a [ i ] ;
13* xHJi6apxaH ih h h a s jk 6 o jih o . (XspsB Tycjiax MaccHB auiHrJiaxryH rsB3Ji nort () 4>yHKH3A 6MH0 aiiiHrJiax GaftcaH apaii TOBorrsii apraap u ih hasx O o jih o . Q e p e e p X3JI63JI 6h a 6yx 3JieMeHTHHH 3P3m63ji3tab3Ji 3 o x h x
Oaiipjiajiwr M3A3* 6aiiraa.)
O o p H3T3H 60flJI0rHH H0XHJIHHT aBM Y3I>e. 3H3 60flJI0r0 Hb 0 —33C M -l l yJixyyp yrraTaft n (n>m) erorAJiHwr 3p3M63Ji3x iom. T ap xa jira r to o jio x •uii opHTMaap 3H3 6oA>iorbir uihhasjk 6ojiho. 3 h s ajiropHTMhh caHaa Hb (i ji raaiaft TyjixyYP yrryyAHH AaBTajirar (MaccHBT xhhhssh opcoHbir) toojioh , napaa HbAaBTajrrbiH ToorauiHrjiaH 3JieMeHTYYAHHH 6aiipjiajibir toaopxohjiox him. S h s a p ra r Aapaax KOAbiH xscresp ysYY™33-
for(i=0 ; i<M; i++) count [ i ] = 0; for(i=0 ; i<N; i++) c o u n t [a [i ]]++; fo r (i= l; i<M; i++) count[i] += cou n t[i-1 }; fo r (i= N -l; i>=0; i - - ) b [--count [a [i ] ] ] = a [ i ] ; for(i=0 ; i<N; i++) a [ i ] = Jb [i j ;
A aapx k oa xapx3H axHJiJiaxbir 10.5 —p 3yprnftH Sxhhh MepoH a sx i >MA3rrYYA33C Torrox MaccHBaap TattjiSapjiaa. 3xHHft AaBTamraap count MaccHBbiH 3JieMeHTYYA3A 0 yrra o jitoho. YAaax AaBTajnaap tyjixyyp yrryyA XH4H33H AaBTarAcaHbir t o o j ix , YP AYHr c o u n t MaccHBHH xaprajiaax niiAeKCT3H 3JieMeHT3A xhhhs. >Khiii33Ji63Ji a MaccHBT 0 ty jixyyp 2 yAaa nanrarAcaH ynnp count [o ] =2 , 1 yrraTatt tyjixyyp 3 yAaa ynnp count [ 1 ] =3 ,
151
EyjiBZ 10
r a x M 3 T 3 3 p c o u n t [ 2 ] = 3 , c o u n t [ 3 ] = 2 T 3 C 3 H y r r y y j i b i r a B H a . T y p a B f la X b
A a B T a J IT a a p c o u n t [ 0 ] = 2 , c o u n t [ 1 ] = 5 , c o u n t [ 2 ] * 8 , p p u n t [ 3 ] = 1 0 T 3 C 3 H
y r r y y / ib i r a B H a . 3 h 3 H b 0 y r r a T a f t T y j i x y y p b M a c c H B b iH 2 j j a x b 3 J ie M e H T H w r
x y p T 3 J i, 1 V T ra T a H t y j i x y y p b M a c c H B b iH 5 / ja x b 3 J ie M ^ H T H w r x y p x s j i , 2 y r r a T a H
T y J ix Y Y P b M a c c H B b iH 8 # a x b 3 J ie M e H T H H r x y p t s j i , 3 y r r a T a i i T y j i x y y p b
MaccHBbiH 9 ii3X 3JieMeHT x y p T 3 J i T y c T y c 6 a i i p j i a x b i r t o a o p x o h j u k 6 a H H a .
10.5 — p 3yprHww 3xhhh Mepeep awx eremceH a MaccHBbir, 6yca# Mepyyassp b MaccHBbiH yTraa aBax npouepcbir aJixaM ajixMaap y3YYJIJI33- 3flr33p MepYY^3^0 koahh 4 ii3xxiaBTajiT x$px3H ajKHJiJiaxbir xapx 6ojiho. TyxaHJi6aji, a MaccHBbiH TercroJiHHH 3JieMeHT 1 rapcHaap c o u n t [ l ] —hhh yrra Hb yr 3JieMeHTHHH b M3CCHBT OpOX 6aHpJiaJIbir TOflOpXOHHO. c o u n t [ 1 ] =5 y^Hp MaccHBbiH 5 jjaxb 3JieMeHT3fl I tyjixyyp yrraTaH sjieMeHT 6anpjiax 6ojiho. (C++ X3JT3HJI MaccHBbiH HHA^KC 0 —33C 3X3JlJJ3r yHHp 5 AaXb SJieMCHT Hb 4 T3C3H HH#eKC33p TO^OpXOMJIOrnOHO. MHM33C yrra OJirOXblH 0MH0 c o u n t [ 1 ] —hhh yrrsir H3r33p xoporxiyyjDK 6aHHa.) a MaccHBbiH yaaax 3JieMeHT Hb 3 6a c o u n t [3] =10 y rop b MaccHBbiH 10 jjaxb 6aftpjiaji# 3 opho. 3h3 m3thhji3H a MaccHBbiH T0rcr0jl0ec 3XJI3J1 XYPT3JI ZiaBTaJIT XHHX3,n; 6yx 3JieMeHTHHH 6aftpjiajibir To^opxoHJiJK flyycHa. /
a l W § 0 0 0 0 a @ 0 B
i i □ □ □ □ a n n n n n □ □ □ □ □ □ □ □ □ a □ □ □ □ 0 0 0 0 0 0 !
3 y p a r 10.5. TapxariTbir toojioh 3p3M6ari3X apra
rapraH ascaH Tycjiax b MaccHBHH yrrb ir xaMrHHH cyy^ h h h h flaBTajrraap a MaccHBT ojiro>K 6aHHa.
152
3psM63R3JimuuH 3H2UUH apeyvd
jl,33pX (JtyHKU Hb b [N] T3C3H H3M3JITTyCJiaX MBCCHB aiUMrJia>K 6aMHa. TiPBSil 6 h a Aapaax b u c k e t s o r t ( ) <J)yHKU33p Tycjiax MaccHB auiHrJiaxryHrsspll 3BTpYYJI3XHHr Y3YY-Jlbe-
vo id b u c k e tso rt (u n s ig n e d in t a [ ] ) { in t j , i , c o u n t [M ]; f o r ( i = 0 ; i<M ; i+ + ) c o u n t [i ] m 0; f o r ( i = 0 ; i< N ; i+ + ) + + c o u n t [a [ i ] ] ; f o r ( j = 0 , i = 0 ; i<M ; i+ + )
f o r ( ; c o u n t [ i ]> 0 ; - - c o u n t [ i ] ) a [ j+ + ] = i ;
}
bu ck e tso rt () 4>yHKU,HHr unsigned in t MaCCHBbir 3p3M63JI3X 3arBap 6 hW
(J)yHKU33p TOAOpXOHJUIOO. Y^Hp Hb 3H3 ajiropHTMbir unsigned in t TYJIXYYP 6yxhh e re rA J iH iir 3p3M63Ji3X3A aw nrjiaAar. 9xhhh AaBTairraap ToojiyypbiH yT ru rT3rJi3X 6a O(m) xyrauaa maapAaHa. J\apaanwHH AaBTajrraap MaccHBbiH TyxaHH sjieMeHTHHH xapraji3ax ToojiyypbiH y r rb ir hsmhs. 3 h s AaBTajrraap j/ieMeHT6yp H srynaa m ajira rjjaxynup o (N ) xyrauaaHA axcmuiaHa. Cyy-^^m h ziaBxap AaBTajrraap n erer/y iHKH 3P3m 63ji3tac3h MaccHB yyc3x 6oreeA AaBxap AaBTajiT Hb n yaaa aaouuiaHa. 3 h s ajiropHTMWH h h h t axHJUiax xyrauaa Hb o ( m+n) 6 ojiho. X sp sB m=0 (n ) 6oji s h s ajiropHTMBiH axHJiJiax xy rauaa r uiyraMaH 6y ioy O (n ) r s x y33X 6ojiho. XapHH m Hb n — 33c xapbuaH ry ii hx IOO 60JI O(M) Hb M0H HX 60JIH0. 3H 3 aJiropHTM Hb M X3MX33T3H H3M3JIT tanr maapAaHa.
Iemp1ate <c 1 as s Type>void qu icksort(Type a [ ] , in t 1, in t r ) {
i f ( l < r ) |int i = p a r t i t i o n ( a , 1, r ) ?
q u i c k s o r t ( a , 1, i - 1 ) ;
q u i c k s o r t ( a , i+1, r) ;
)
>113 4>yHKUHHH OpOJTTOA a [ ] MaCCHBBIH 1 6a r X5I3raapBIH XOOpOHA OpIHHX• P3M63JI3TA3X A3 A X3C3r Op5K HpH3. 1 HB A3 A X3CrHHH 3XHHH (3yyH) MieMeHTHftH HHACKC, r HB A3A X3CTHHH TercrOJIHHH (6apyyH) 3JieMeHTHHH IIIIAeKC K)M. 3H3 (J)yHKU,HHH XaMTHHH 3XHHH AYY^aJITaap 3p3M63JI3rA3X MaccHB 6yX3JIA33 opxHP3X 6ere0A a [n] M'aCCHBBIH XyBBA qu icksort (a, 0, n - l) r32KAyyAHa.
•iu ickSort() (fjyHKii; hb p a r t i t io n ( ) (j^yHKijssp xyBaarAcaH 3yyH 6a 6apyyHI »/l X3C3r 6ypHHH XyBBA 00PHHT00 peKypC33p AyyOTar. p a r t it io n () 4>yHKU iii. MaccHBBir Aapaax HoxiuiHHr xaHrax rypBaH A3A X3C3ir xyBaaAar. Y y i t n ;
( I ) 3UCHHH 6aHpjiajiAaa opcoH i hhackc 6yxHH a [ i ] 3JieMeHT
155
E y jm 11
(2 ) a [i i -33C 6ara 3JieMe hxyyjihhr aryyjiax a [ 1 ] ... a [ i - l ] 3yyH # 3 # xacsr(3 ) a [ i ] - 33c wx 3JieM ehtyyawhr aryyjiax a [ i + l ] ... a [ r ] Gapyyn # 3# X3C3 r
templqite< c lass Type>int partition (Type a t ] , in t 1, int r) {
T y p e W ~ a [ r ] ; int i = 1 - 1 , ’ j "= r ; fo r ( ; ; ) { :<i
while (a [+41]’ < v ) ;
156
3p3Ai63A3AmuuH xyHd36m3p a pay yd
w h ile (j> l SeSt > v ) ;i f ( i > = j ) break; swap(a, i , j ) ;
}swap(a, i , r ) ; return i ;
}
fls sp <|)yHKU3# v xyBtcarq Hb “ xyBaax 3JieMeHT” a [r ] -hhh y rra r aBax 6a i xyBbcarqaap 3YYH TajibiH xaiuiT, j xyBbcarqaap 6apyyH TajibiH xaHJiTbir Tyc Tyc xhhhs. XaHJiTbir fo r (; ; ) TercreJiryH #aBTajiTaap ypr3JixjiyYJi3H xhhx 6eree# i 6a j 3aaniyy# 3epceH toxhoji#oji# break —33p xaHJiTbir 3orcooHo.
OpyyjiaH 3p3M6sji3X aprHH ye# “ xapyyji” yrraap majirajiTbir 30XHuyyji>K 6ojiox Tyxan apHr#a>K 6ancaH. T s tb s ji 3h# 3yyH Tajiaac xanx xaHJiTHH xyBb# v —hh h y rra xapyyji y rra 6o jck 4a#Ha. G e p ee p x3ji63ji v Hb MaccHBbiH XaMTHHH HX yiTaTaH 6aHX TOXHOJI#OJl# w h ile (a [++ ij < v) ; #aBTaJTT Hb a [r ] 3JieMeHTHHH xyBb# (a [r ]= = v yqpaac) 3orcox 6ojiho. XapHH 6apyyH xaHJiTHH xyBb# xapyyji sjieMeHTHiir to#opxohjiox GojioMxryii. Mhm33c j - hhh yrra 3yyH XH3raapaac x3T3pc3H scsxHHr j > 1 H ex iy ieep majiraac Ganna.
partition () 4>yHKij33pxyBaar#aacHpc3H 3yyH 6a 6apyyH#3#xscsr 6ypHHH xyBb# quicksort () (JjyHKu peKypc33p#yy#ar#aH xscsr 6ypHHr#33px rypBaH HexuJiHHr xaHracaH 6anxaap #axHH xyBaa#ar. 3h s peKypcT yhji#3ji Hb #3# x3cryy#HH:r uaarn #axHH xyBaar#axryH (H3r 3JieMeHTT3H) 6ojitojt ryiiusTrsx 6e r e e # q u ic k s o r t ( ) 4>yHKU aacHJi/iaa# #yycaxa# MaccHB 6yp3H 3p3M63Ji3r#c3H 6aHHa. 11.1 —p 3ypraap aBcaH acnuissr Ypr3JDKJiYYrt3H #3# X3cryy#3# xyBaaH 3p3M63Ji3XHHr 11.2 —p 3ypraap xapyyjuiaa.
XaMrHHH Myy TOXHOJI#OJI Hb OpOJITblH MaccHB ajlb X3#HHH 3p3M63JI3r#C3H 6ahx toxh o ji#o ji# iom. 3h3 ye#xyp#aH 3p3M63Ji3JiTHHH ajiropHTM Hb “ y#aaH ip3M63Ji3JiTHiiH apra” 6 o jih o ! 3 x h h h xyBaax 3JieMeHTHHH (MaccHBbiH xaMrHHH cyyahhh, xaMTHHH hx 3JieMeHT> xyBb# n xapbuyyjiajiT XHiir#cHHH napaa xyBaax 3JieMeHT 6anpaH#aa yji#3H3. YyHHH #apaa n- 1 3JieMeHT 6yxHM
157
Byjiaz 11
I a 1 a 1 £ §£3 T M l nTg i o Is [M]E 00 i A j j i j i i mmwsssmmmmE l M M o f f L r i lN lG lo | R | M ^ lX lT | s |
t t » « L l i Ig M o I p Tn ^ M B B
B g » P F f f i M M
i i t -B B S B B R i g M M j p T o i a B g a
w a m m m m m r w * mm w m m m
3ypar 11.2. flafl xacryyAafl xyBaaw spai^anax
3YYH AS# xscsr 6a xoocoh 6apyyH as# xscryyA YYCH3- 3yyH as# xscrHHH xyBbA n-1 xapbuyyjiajrr xhhx 6a y/jaax xyBaax sjieMeHT 6aiipaHAaa YJW3X, n-2 6a xoocoh a s a xscryyA YYCH3- 3 h 3 msthhjish xnnrAcssp 3P3m63ji3jit AyycaxaAHHftT
f(N) = N + (N + l ) + . . . + 2 + l = ^ = 0(N22
xapm yyjia jrr XHHTAAsr. Y y h s s c raAHa xypAaH 3P3m 63Jis j ith h h apra Hb pexypcT n flyy/jaJiTur 3oxHu;yyjiax ( c hctcm hh h ) cTeKHHr maapAAar.
XapHH MaccHBbiH e re r^ e ji caH aM caprynrssp e re rA e x yeA xypAaH sPSm 6sjisjithhh aJiropHTM HJiyy yp auiHiraH 6aH^ar. EpeHXHH toxh o jiao jia ajiropHTMHH aJixaM 6ypT xoep A3A xscsr yycAsr. Tyxanji6aji
(1 ) 3 xhhh ajixaMA MaccHBHH Hsr sjieMeHTHiir 6aiipjiyyjiaH, xoep a s a xscnm r yycrsx
rsx MSTHHJI3H 6aracracaap k ajixaMA 2k_1 sjieMeHT 6anpjiajiaa ojiaot. 3 hassc n ererAJiHHH xyBLA oHpojmooroop I o g 2N ajixMaap 6aracraAar. YrcMaap anxaM
6ojiho. Yhsh X3p3iT33 xyp#aH 3P3m63ji3jithhh ajiropHTMHH xapbuyyjiajrrMH too Hb MaTeMaTHK 6aTaJiraa 6ojioh TypniHJrraap i.3 8 N lo g N SaHHa reak noTJiorflcoH 6a£i#ar.
X3#H#r33p #33px ajiropHTM Hb epeHXHH toxhoji#oji# Mam yp a iim ra # GOJIOBH 3P3M63JI3JIT OJIOH #aXHH XH#r##3r 60JI0H 3p3M63JI3r#C3H TOM x3M5K33HHii erer#JiHHH xyBb# aiunr MyyTaif 6aii#ar. Hhm# xyp#aH 3P3m63ji3jithhh ajiropHTMbir caftacpyyjiax 3apHM apryy#bir #oop aB iX3JI3Jmte.
3h# 6h# q u i c k s o r t () (J)yHKU,HHH peKypcryH xyBHJi6apbir aBH y3be. PeKypcT (JjyHKU,HHr CTeK aniHTJiaH peKypcryH Gojirox 6oji#rHHr 6h# M3#sx 6hjis3. /Japaax H3btpyy^3^T3# 7 —p 6yJi3rT to#opxohjicoh ctckhhh KJiaccbir uiyy# aBq auiHrJiacaH. 0rer#jm iir xoep #3# xscsn xyBaaac, Hsnrar Hb cTeicr xa#rajiaa#, Hereer Hb uaarn #axHH xysaaHa. EojioBcpyyjiajrr xhhjityh ctckt xa#rajicaH #3# xscryyflHHr creKssc aBH, moh #axHH uaarn xyBaaHa. 3H3 f>Yr#HHH 3U3CT CTeK xoocoh 6ojichoop MaccHB 3p3M63Ji3r#35K #yycHa. #3# \ )crHHr cTeKT xa#rajiax#aa 3JieMeHTyY#HHH yrrbir 6hhi, 30BX0H 3yyH 6a fiapyyH XH3raapbiH 3JieMeHTHHH HH#eKCHHr xhhx iom. 3h3 ajiropHTMbir napaax q u i c k s o r t () (J)yHKU33p Y3YYJUI33-
t e m p l a t e < c l a s s T y p e >
void q u i c k s o r t ( T y p e a[], i n t 1, int r) {
int i;
S t a c k < i n t > st;
f o r (;/) {
w h i l e ( r > l ) {
int i = p a r t i t i o n ( a , 1, r ) ;
i f ( i - 1 > r-i) {
st. p u s h (1); s t . p ush (i-1)
1 = i+1;
}e l s e {
s t . p u s h ( i + 1 ) ; s t . p u s h ( r ) ;
r f i-1;
}}i f ( s t .e m p t y ()) break;
s t . p o p ( r ) ; s t . p o p (1);
)
159
By/132 11
,H,33px c^vhkh Hb eMHex peKypcT 4>yHKU,33c Aapaax naHapyyaaap HJiraaTaH. C tc k t xaArajiarAax A3A xscryYA Hb T0XH0Ji;yi00p 6 h h i, xapHH xoep A3A xscrHHr xapbuyyJicHH yhacsh assp hx asa xscrnnr c tck t xa#rajmar. Bara A3A xscsr Hb X3333 q c tck t xanrajiarAaxryH 60r004 uaaui iuyyA (xyBaarAaH) 6ojioBcpyyjiarAAar. 00poop X3JI63JI 6ara as# xscrnnr sxsjdk 60Ji0Bcpyyjiax 3apiiMaap axHjmaHa. M htschssp peKypcT 4>yHKUHHH xaMrHHH Myy (MaccHB Hb 3p3M63JI3rOTHXC3H) TOXHOJIAOJIA UiaapAarAaX CTCKHHH A33A X3M3K33 N-H-ftr logN xypT3Ji GyypyyjiaH amnrJiaHa. Hx x s m x s sh h h ererAAHHH xyBbA peKypcT c})>/HKiiHHr aiunniaxaA rapAar AyrarAaji 6oji caHax ohh xyp3JiU33HHH acyyAaji G a idar. JJ,33px peKypcryn cJjyHKU Hb 3H3 toxhojiaojia h jiyy HaHABapTaH aaauuiax 6ojiox iom .
XyBaax sJieMeHTHHr c o h t o x h jiy y au iHrraH apra 6 o ji rypBaH 3JieMeHTHHr aB4, xyBaax 3JieMeHT33p T3Ar33pHHH AyHAax (y r ra a p a a ) sjieM eH TH H r c o h to x iom.
3apHM xspsrjissH A Tyjixyyp 3JieMeHTHHH yTra to a o p x o h MyacHA xapbaajiarAcaH GaiS&ar. >Khih33jiG3Ji iuyyAaHTHHH cajiGapr 3axnar AyrryHH A33px 6 opoHToii HHA®KC33p 3p3M63JiA3r. 3h3 toxhojiaojia uiyyAaHrHMH a^KHJiTaH 3axnar HHAeKC33p Hb U3ruJi3XA33 xapbuyyjiajiTbir hhackchhh yrraap 6hui, xapHH hhackchhh opoHroop xhhx Hb xn/iGap, xypAaH 6aHAar.
161
3p3M6aji3AinuuH xyndsemsp apsyyd
HiHJEKYYnMT xHitresa o o o o o o o o il MacKaap 6hthhh “ 6a” y tim a ii XHHipr. 9flr33p YHJiWHHr C + + X3JI3H4 ( x » 8) s 03 rsac x »a 6apxaH HiMiiaasr. EpeHXHH TOXHOJiflOJifl x -h h h 6apyyH TaJiaac j 6h t caaraH aBax MacK uiaap4naraTaii60r e 0flTYYHHHrx & ~ ( ~ 0 « j ) racsH y liaaa33p rYiutsTrsasr.
}f r i e n d o s t r e a m s o p e r a t o r « (ostreams o u t , b i t s k e y s a) {
out « a.x;
r e t u r n out;
)i n l i n e u n s i g n e d b i t s ( i n t k, int j) {
r e t u r n (x » k) & ~(~0 « j>;
}} ;
t y p e d e f b i t s k e y iteraType;
/ Isspx KJiaccbiH 3apjiairraap itemType T ep e jiT s ii Tyaxyypx rypBaH ymjus/i XH ftrasxssp TOflopxoHJiorflcoH. S flrsspH H H y rra o jiro x 6a y r r a r xsBJiax xoep YHJIflJIHHr C + + X3JIHHH 4 aXHH TOAOpXOitaorACOH O nepaTO pblH TycjiaM XTaftraap H3BTpYY->ic3H. Cyyji'tm hh bits ( ) 4>yHKH h l x —h h h 6apyyH rajibiH k a y raa p 6ht33C j 6HTHHr canrax YH JW iH iir xh h h s . )Khiii33Ji63/i item Type xepoJiT3H t o 6te K T 3apaaaa, t=l000 (xoeprb iH xooa oaa 1111101000 ) rscsH yrra o j i to c h h aapaa t .bits(4,2) rsac ayyuBaa 2 (xoepxw H x o o a a m i 10 6y io y t —h h h x e r c r e a e e c rypaB 6a aep eB ayrasp 6h t ) rapHa.
T Y-nxyyp yrrbir bi ts {) c^yHK U H H H TycaaM*xaHraap 6oaoBcpyyaan 2 cyypuap 3P3m6sji3x apra H b xyaxYYPHiir aornicoop 6htyyA33c (0 6a 1) xorxox xsMjisrTM ep M3T33p aBH ysjopr.
TyjixyyPHHH 6 HTYY4 HHr xapbuyyaax aapaaaaaac hb xaMaap'i cyypuap 3P3m6sji3x xoep TepjiHHH aprbir ToaopxoHaac 6o jih o . XspsB ty jixyyp 60rHH0X0H 6hih 60a 6HTYYflHHr ca/iraH aB i xapm yyaax 3aMaap, ytym 60a (scpsr Toxnoaaoaa) eMHex Syasrr Y3C3H xapxaaxur Tooaox a p m r auiHraaH
163
Byjisi 11
0 ep eep X3ji63ji sxhhh hh4»P hi. 1 -asp 3X3JIC3H 3axHar lia r xaftpitarr, 2 racaH un(J>p33p 3X3JIC3H 3axnar viiaax xaiipuarr rax m sthhjish 6YJi3r;i3CHMft aapaa 3xhhh xajipm'HHM 3axwar HHfleKCMiiH xoep flax i uwjjpasp aJU'HJiax 6aii,ajiaap Qyx HHcjjpYYflMWH xyBbfl xapbuvyjiajix xh h ch ssp 3P3m63ji3jit XHHrzpjK jiyycaar.
r3 JK 6 H 1 H T / IC 3 H T o o ju ib iH C H C T e M H H H c y y p H a p H b ( r a d i x 6 a b a s e )
HJ13pXHHJ]/t3r. X s p 3 B H M ap TOOJIJIblH CW CTCMR 6H H M I7IC3H H b T O flop X O H rY H
6oji cyypHfir yr to o h h MHiiexc 6aiijuiaap 6h h h x erfler. 5Kh h i33Ji63ji
( 1 0 1 1 ) ( 1 3 ) , = (1 1 ) 10= ( b l ls .
En/imm aBH Y3C3H fly rry iiH BHfleKC Hb apaBTMH TOOJIJIblH cucxeMHHH to o 6ahcan . 3 h s 3P3m 63ji3 jith ith apra Hb t y j ix y y p ™ t b cyypbxaft t o o j i j ih h CHCTeMJI HJT3PXHHJI3H 3p3M63JI3JIXHHr rYHH3TT3fl3r. HHM33C 3H3 aprb ir TOOJIJIblH ciicTeM biH cyypitcip jp:m 63A3X a pea rs fl3 r.
KoMiibioTep Hb tyyhh 6ojioBcpyyjiar;iax 6yx 3YHJicHiir (erer/ioJi, onepaTop, KOMaHJI ...) xoepTbiH TOOJIJTWH TOO M3T33P aBH Y3fl3r. HhM33C cyypnap 3P3m63jisx aprbir amnrjiax ojioh xspsrassHfl 2 cyypHftr 6yioy xyJixyYpHiir xoepTbiH to o jijih h Tooroop h jopxhh jish aniHrJiajiar. Ohlu ioh X3Ji3X3fl C++ Hb xoepTbiH TOOJIOJIfl 6VI0y 6HTYY-SHHH XyBbfl XHttrfl3X ffOOff TYBIHHHH onepaTopyyaaap xaHrar/icaji Gaii/iar,
Cyypwap 3p3M63Ji3X ajiropHXMH maap/tarjiax yhucsh yh jw m 6oji xoepTbiH toohooc aapaajian 6aHpjracaH xscsr 6 h th h t canraH aBax yfljiasji iom. 3 h s YiiJiaJiHHr 6 h th h h “ 6 a ” Y*iJi.tt3Ji S o jio h “ u ih jixyY-k3* ” YHW HHiiH TycJiaMJRTawraap ryiiHSTrsflsr. >Khui33ji63ji tyjixyyp 10 6ht33c 6ypTO3rr3B3Ji axjiax xoep Qwrnm cajiran aBaxbiH tvjw 6apyyH th h ih 8 6 h t 6aHpjiajiaap
Eyjiae 11
3p3M63JI3JITHHr X H H * GOJIHO.
3 x h h h aBH Y33X apra Hb 6nTyy.UHHf 3yyH33c 6apyyH ih tj isj ia uianraH e re rA e jw xyp flaH 3 P 3 m 63 ji3j it h h h (x 3 C 3 rn 3 H -H 3 rrr3 x ) aprh iH aflHJiaap x aH A ax
3p3M63JI3A3r. 3 h 3 a jiropH TM H r r a d i x S o r t O (J)yHKU33p H3BTpyyJIJI33. r a d ix S o r t ( ) <J>yHKU Hb 3XHHH 6HT Hb 0 6aHX TyJIXyypYYAHftr 3XHHH 6HT Hb 1 6a ftx TYJiXYYPYYAHHH b m h o 6aftpAyyjiH a. 3 h s x o ep x s c s r Hb peK ypcT AyyAaJrraap xapmiuaH xaMaapaJiryiirasp 3p3M63JrarA3*: AyyccaH H Aapaa h h h t
e r e r a e ^ 3p3M63Jt3rflC3H 6aftHa. M accH Bbir sp3M63Ji3XA33 1 6HT33p 3X3JIC3H SJieMeHTHHr MaCCMBHH 3XJI3JI23C xattac OJIOOA, 0 6h T33P 3X3JIC3II SJieMeHTHftr MaccHBHH T e rc re jie e c xaiiH ojdk xoopoH A Hb cojihx 3aMaap 3p3M63Ji3JiTHiir
XHHusr.
v o i d r a d ix S o r t (ite m T y p e a [ ] , i n t 1 , i n t r , i n t b ) { i n t i , j ; i f ( r > l && b>=0) {
i = 1 ; j = r ; w h i l e ( j ! — i ) {
w hile ( ! a f i ] . b i t s (b ,1) && i< j) i++; while! a [ j ] .b i t s (b ,1) && j> i ) j - - ; sw a p (a ,i , j ) ;
}i f { I a [ r ] . b i t s (b , 1 ) ) j+ + ; r a d ix S o r t (a , 1, j - 1 , b - 1 ) ; r a d ix S o r t (a , j , r , b - 1 ) ;
}}
r a d ix S o r t ( ) (f>yHKHHHH H3r maapAJiara 6o ji TyjixyypHHH 6 h th h h T oo r m sa s * 6 a iix ecTo ii. 3 e p s r Syxsji t o o Hb 2M —o o c 6ara 6 y io y 31 6 h t xoepTHH T ooroop HJispxHHJisrAsx yqpaac (J)yHKHHHr a [n ] MaccHBHH xyBbA r a d ix S o r t ( a , o , n - 1 , 30 ) rexc AyyAHa. O yh k h h h h cyyjiHHftH a p ryM e m b hb axnax 30 Ayraap
6h t33c 0 ayraap 6 h th h h xoopoH A m an ra rja x 6 h th h h A y raap n r TOAopxoRimo.
BkTHHH TOO Hb TyXattH MaUIHHH 6yX3Jl T o o r HJI3PXHHJI3X 6 h th h h t o o 6ojioh X3p3ni33HHH maapAJiaraac xaMaapHa.
^ s s p x 4>yHKH Hb xypaaH 3P3m 63ji3jithhh ajiropHTM biH aAHJi ererjyiHHr xoep xscs rT xyBaaH peKypcT AyyAaJiTaap 3p3M63Ji3JiTHitr xw iiaar. XypAan 3p3M63Ji3JiTHftH apraA si Map Hsr sjieMeHTHHH yrraap xoep xscsrr xyBaaaar 6oji 3H3 apraA 2b 6HT33p xoep xscsrr xyBaaAar. OyHKHHHii i , r apryMeHTaap majirax xsci h h h aooa 6a a s s a xaaraapnr aBax 6a i , j xyBbcarnaap o p * Hpc3H xscrHHH sxjisji Tercrejieec ( i = = j ) tiexneji Snejrax xyprsji AaBTanTaap 6yx 3JieMeHTHHr urajiran cojihho. j3,aBTajrr Ayycaxaa a [ j j aneMeHTHiiH 6apyyn Tajm b ayrasp 6h th h h yrra 1 6anx sjieMenryyfl, 3yyH Tajw b Ayr33? 6hthHh
164
3 p 3 M 0 3 j i3 j in iu u h xyHdaemap apevvd
yrra 0 6a iix aneMeHTyyfl xyBaar/iaH Saiipjra/iar. Byx sjieMeHTHiiH b flyr33P 6w t h h h yrra0 6 a n x a a c 6 y ca a to x h o jia o j iu a [ j ] s jieM eH Tn iiH yrra 1 6aitHa.
11.3 — p 3ypraap a s o r t i n g e x a m p l e r e ca ll erer/urni-ir a s a x3cryYfl3A
xyBaaH apsM SajiaxH iir y s y y J1-1!33-
| A | S | O | R | T [ i | n |g |e |k |a |m |p |l |e |
|a |e |o |l |m | 1 l N | G | E | A | x | T j P | R | S |
f A | E ] A | E | G | 1 f nTm ] l fim^rnm| A | A | E | E | <3 p | A | A |;K| ;V-| *jj
11.4 —p 3ypraap A33px ererflJ iH H r xoepTbiH T oo ro o p h jis p x h h j is h xapxaH ■ j p3Mf>3Ji3XHHT xa p yy ju ia a . T s M A s r m i i r 3 y p a r r 3 eB xeH TaBaH S H Tsap a y P c jis h
y :jyy ji* :33 . Y i a p Hb anHBaa ( a s c i i ) t s m a s i t Hb 7 6 h t3 3 p h j is p x h h j is t a s x 6a
OWflHHft XHHI33HHH ererflS J I H b TOM YCTYYil 6 y ro y T 3 M iI3 n H M H KOflblH
xycHsrrHHH 65 —aac 90 —h h xoopoha opumx tsmasityya iom. Hhmssc 6yx tom ycniiiH axjiax 2 6h t Hb xaprajiaaH 1 6a 0 racan a/iHjixaH yrraxaii 6aHiiar. HftM33C 3XHHH xoep 6h t Hb 6hahhh )kmui33 ererAJiHHH xyBbfl siMap h a‘i xo^6orfloJiryH iom. XapaB e r e r f le ^ tom xodkht ycsr, uwcjjp 6ojioh Tycraii iciMflsrTYYff opojiiioac SaiiBaji 6yx 6hthhh xyBbfl oiajirajiTbir xniix ecToii.
I yjixYYPYY^HHH y rra Hb Maui 6ara , e e p e e p x s jiB s j i axjiax 6 h t y y a r s r yrraTaH
165
dpiMCnjianmuiiH xyndsnmsp apeyyd
•>H3 aprhiH ayrarna jiTaH T3j i hb 3p3M 6s;i3X MaccHBaac ra/jHa xoepTM H
xjiiijiTWH moa YYcr3X H3M3JIT 3a ii uiaapaAar. XapHH x oep rw H m oahbi e e p rop e ji 6onox h eap amwniaH 3p3 M63Ji3X flapaasiHftH apraap h s m m t 3aft
inaapaaxTYft S o j io x u r x a p * 6o jih o .
XoepmbiH xa iu im uH Mod
XocpTbiH xaftaTHH m o # Hb xoepTbiH MOflHH H3r Tepe;i 6eree,n, flapaax
innii*YY/lHHr aryyjwar. XoepTHH xaiurrbiH m o ^ h m aKHBaa aanniJiaa.ibi 3YYH
/t >a m o /i o h a t y y h 33c 6ara yrraTaft jjieuenTYya, 6apyyH # 3 « m o a o h a h x
yiraraft sjic m c h t y y a Saftpnaflar. 11.5 — p 3ypraap xoeprbiH xaiiJiTtiH m o a h h
*HIU33r Y3YYJUI33.
\ icpTHH xaftjiTbiH M O f l H W sjieMeHT opyyjiax 6a ycrrax K b xyrauaa
uipcaH, H 3 BTPYYJI3-,1T H b T0B9IT3H 6aftnar 60JI X O e p T H H XaHJITHH MOflOHa '.iiiiir XHftx YHJIA3JI H M a p flaByy TajiTaft 6ojioxbir flapaaHHiiH 6y;ir33p w i YY
.1 nil'3p3HI’Yft Y33X SOJIHO.
X n r p T H H xaftJiTHH MOflbir 9 —p 6 y -/13i t aB'f y s c s h xoeprbiH m o /h i m KJiaccTaft
Ktcrittrsap H3BTpYYJi3X 6 o /i o b1i lyYHit XHiir/ux japHM yhjH W Y V A H h h xy*;M
n 'i i aaraiiraap Toflopxoiuiox maapflJiaraTaft. XoeprbiH xaftnTbiH MO^bir aapaax
•it u i j u i h h h XHHCB3p Tepjioep TOAopxoHJL+c 6 o ;i h o .
•"mplate <class Type>• lass BSTree (
struct Node {
Type data;Node *1, *r;
N o d e (Type d) : data(d), 1 ( N OLL), r(NULL) ()
s a n E o H P E 0 o i m A 00 0 ® A 0 0 0 2 l 0 0 0 0 ■
o SfM M M O o k s & 3 ! A 0 3 ® S E 00 1®88 E o o T o i E 0 0 10
r m u L 0 i 1 0 0 E 0 3 M V f E 0 0 1:B * E 0 0 1 0 :1 E 0 0 1 0 H
T .1 0 1 c 0 M o i : i : o . t G 0 ()SSSI G 00 1 *3*1 G 0 0 1 1 l G 0 0 1 ~ 11 0*1 C 0® 1 'jko^o 1 1 01 H i I 0 1 D eal 1 0 1 0 qB 1 0 1 0 0 i
n K iC a iiM N 3 1 t i d N 01 S M N 0 1 a n L o 1T 3® L 0 1 1 0 0g m S )0 J J 3 : M 0 1 H M 0 1 0 It M 0 1 1 > 1 M 0 1 1 0 1e M M E m m L 01 1 0 0 L 0 1 m N 0 1 1 1 i N 0 111 0x s m A C®BMI O 01 i b s O 0 1 m O 0 1 1 1 1 O 0 1 1 11a w m m X 1 H S 10 w m S 10 0 Bis P 1 0 0 0 I P 1 0 0 OK
umsmm T 1 I B B T 10 wm. R 1 0 0 SHI R 1 0 0 1 I R 1 0 oT jt
p H H P 1 H f H P 1 0 w m P 1 0 0 ■ S 1 0 0 1 1 S 1 0 0 1|1l R 1 o a i o’ R 10 0.1:0 T 1 0 1 OS T 10 10 i T 1 0 1 o|c
e m i l l 5 [1 w X 1[1jO B X 1(0 m X 1 1 0(0 if X 11 oo|o
3ypar 11.4. C yypnap apsMOaJiax apra (“3yyH33c 6apyyH" apra)
Saiix yen yp aurar Myyraw Oaima. M gh hxchjt sjreMeHTyyil o;m oop AaBTar^caH erew iH H H xyBBfl yp araHr Myyraft.
Cyypnap spsmSsjisx aprtrn eep nar amropHTM 6oji SHTyyiiHHr 6apyyHaac 3yyH 'rnra3Ji/i iitairra^ar. 3 h s ajiropHTMbir H3btpyyji3X433 10 —p 6yji3rrY3C3H TapxajtTtir to o jiox ap rar aniHniajo(ar.
b 6ht33c Torrox n siteMeHTHiir 3p3M63;i3X epeHXHH cyypb apra Hb Nb xyrauaanA axMJUiaaar. YyH H ar H eree Tajiaac N logN r a x y33ac 6ojiho. Y imp Hb TooHyya 6yrA xoopon/ioo m ra a ra it 6oji b Hb xaMraita Garaaaa JogN 6a te a .
XoepTbiH XUHJITblH MOflOOp 3P3M63JI3X
Mo/toop spaMfisJiax apra Hb xoep ajixaMraii npouecc iom. S xros fl Maccmiu 11 ererfljfflHT xoepTHH xaHjrrtiH Monona xmhsk, xoeprbin xaiuiTHH moa yycrsH j flapaa Hb xoepTHH xa toTH H M o«oop Tsrui xsm t ( i n o r d e r ) apraap ry tt* 3JieMeHTHHr MaccHBHH sxjis jissc ax/ran SaftpjiyyjiHa. 3ar33p yiwwiHHH YP 4YHH MaccHBHH sjteMeHTYYA 3p3M63asrfl3X iom. Y-rap hb Tsrai xsm t apraap xoepTHH xaHJiTHH Mofloop ryHH X3BJI3X34 spsMSsjisrflcsH aapaajiaji Y Y W XoepTbiH xaiiJiraH m o^hh sh s naHapur aunuviaH 3p3M63Ji3;iTHHr xh#xc 60JIH0. 3H3 X3C3IT 6nff 3XJI334 XOepTHH XaHOTHH MO^TOH TaHHJIITba.
Byaaz 11
B S T re e ( ) { r o o t = NULL; }Node * & g e t r o o t ( ) { r e tu rn r o o t ; }v o id in s e r t (T y p e d ) ;b o o l s ea rch (N o d e *tp, Type d ) ;b o o l s ea rch (T ype d ) ;.v o id in o rd e r (N o d e * t p ) ;v o id d e le t e I t e m (N o d e *& tp , Type d ) ;v o id d e le teN o d e (N o d e * & t p ) ;Type p ro c e s s L e ftM o s t (N o d e * & tp ) ;
} ;
R 3 3px KJiaccaap YYC3X x o ep ra H xawjiTbiH m oahw 3aHrHJiaa hb Node G yn jaap
T0A0px0HJi0rA0H0. 3aHmJiaa Hb ererAOJi, 3YYH 6a 6apyyH A3A m oaw t 3aax 3aar4yyAaac t o i t o h o . BSTree KjiaccbiH r o o t 3aarn x o e p ra H xaiuiTbiH m o a h t 6 y ioy m oahw y h a csh 3aHrHJiaar 3aaHa. M o a x o o co h 6anx y^A r o o t Hb n u l l T3C3H VTraTaw 6aHHa. M o a o h a x h h fa b x ajiHBaa yh jia s ji Hb r o o t 3aarHHHH rycjiaM>KTanraap m oahw yh a csh 3aHrHJiaaHaac 3X3JiA3r. X o e p ra H xaHJiraH MOAbir in s e r t o cf)yHKii,HHH TycjiaM ^Taftraap 6anryyjiAax 6a ererAJiHHr o p y y jia x A a a x o e p r a H x a H J ira H m o a h w H exru iH H r xaH ra^c 6 a iix a a p 6aiipjTyyjiAar. i n s e r t O (J>yHKiiHHH k o a w t A oop Y3yyjui33.
te m p la te < c la s s Type>v o id B S T ree<T yp e> : : in s e r t (T y p e d ) {
Node * tp = r o o t , * p tp ; w h i l e ( t p ) {
p tp = tp ;tp = . (d < tp -> d a ta ) ? t p - > l : t p - > r ;
11 -tp - new N o d e (d ) ; i f ( ! r o o t ) r o o t = tp ; e l s e {
i f ( p t p - > d a t a > .d) p t p - > l = t p ; e l s e p tp -> r *» tp ;
}} t
XoepTbiH moaoha opox ererAAHHr moahw yhacsh 3aHrHJiaaHbi ererAJieec bxjish xapbuyyjuK 6ara toxhojiaojia 3yyH cajiaa pyy, hx toxhojiaojia 6apyyH cajiaa pyy hb>k xapbixyyjiajrrwr moahw HaBq xypT3Ji Ypr3JBKJiyyJiA3r. Gepeep X3ji63ji xapmyyjiajiT Hb yhacsh 3aHrHJiaaHaac HMap H3r HaBH xyptsjix 3aMWH Aaryy 6aHpjiax 3aHrHJiaaHyyAWH xyBbA rymjsTrsiTUpr. #33px <t>yHKHHHH w h i l e AaBTajiTaap xapbuyyjiaJiT XHHTA35K, p tp 3aar*£ niHH33p yycsx 3aHrHJiaaHbi 3x 3aHrmiaar 3aaHa. M oaoha opox ererAOJi uihhs 3aHTHJiaa yycraH moahw m BH 6ojdk opAor. IUhhs 3akrHJiaa Hb tp = new Node(d) rax yyc3X 6a Node 6ytixhhh 6aHryyjiam cfjyHKUHim TycjiaMXTanraap yr jaHrwjiaaHbi ererAOJi 6ojioh 3aaroyyAWH VTrwr TorrooAor. IHhhs 3aHrHJiaa
3JieMeHT ycrrax YHJWiHHr ysBe. 9;ieMeHT ycTrax yvuij\3Ji hb opyynax, xaiix 6ojioh X3BJI3X yiiJiAJiHHr Soaboji h jiyy to b o ft s h iom. 9xji33# ycTrax 3/ieMeHTHiiH m o#oha 6aftpjiax 6aHpjiajiBir o jih o . JJsspx KJiaccBiH deieteitem () <J>yHKi*33p ycTrax aJieMemnHH 6aftpjiajiBir TOflopxoitJiHO.
template <class Type>void BSTree<Type>::deleteItem(Node *&tp, Type d) {
i f (tp ™ NULL) { return; } else i f ( d == tp->data) deleteNode(tp ); e lse i f ( d < tp->data) d e le te ltem (tp~> l,d ); e lse de le te ltem (tp -> r ,d );
}
Y c r ra x 3 aH nu iaa r o jiox# oo m o& hh 6 yx 3JieMeHTHftr m a jira x m aap /p ia ra ry ii. y^ H p hb x o e p raH xaftjiTH H mo#hbi HaHapaap YTOC3H 3aHrHJiaaHaac 3XJI3H xapBuyy^DK 6a ra ToxH on^ ow syyh canaa pyy, MX io x h o to o njx 6apyyH ca jiaa pyy a b x y c fra x 3aH nu iaa ojmoxojx x a ito b ir so fco oh o . 3 h s y h ju p ji hb opyy jiax YHJiOTHMH a#HJi m o# hh 36BX0H »M ap H s r saM H H fla ry y x a f ijm ir x h h h s . M o# hw HaB4 xypT3Ji xa iixa# y c rra x 3JieMeHT omcpryH 6 o ji hAm 3aH riiJiaa m oaoh# GaHxryH ts c s h y r. d e ie te ite m o (J)yH K im ta apryM eHTaap m oahbi YH#C3H 3aH rK Jiaa, y cT ra x 3JieMeHT # aM xnr# ax 6ereea xaHJiTHH flBixa# peKypcT #yy#ajrraap #3# aaH nu iaaH yya apryM eHTaap #aM3KHr#ax 6 o jih o . Y cT rax 3aHTHJiaa o jw ox ye# tp 3 a a n y r 3aH m naar 3aax 6a d e le teN o d e {) 4>yHKUHftH TycjiaM ^nraitraap ty y h h h f m oahooc ycrraH a .
(1) Y c iT a x saH raJiaa hb m o o th HaB^ 60j i yr 3aH nu iaar u iyy# ycxraac, TyyHHiir 3aax 3X 3aH m jiaaH B i s a a rm ta y r r a r n u l l 6o jiroH o .
XoepTbiH xaHJTTbiH Mofloop 3P3m63ji3jit xhhx 3H3 apra Hb yp auiHr MyyraH ajiropHTM 6ojw>i\ Yhhp hb 3p3M63Ji3rA3X MaccHBaac raAHa erer^JiHiir typ xa/nrajiax xoepTbiH xaiurrbiH moaoha H3M3jrr3aH anm niaxaac raAHa xoepraH xaHJiTbiH m oa 6a ilryy jiax xyrauaa maapAaHa. T s tb s j i Aapaa inH H y33X
3p3M63JI3J1THHH apraap moh xoepraH moa (h ea p ) aurarjiaH h jiyy YP aiirarraH ajiropHTM rapraH aBaxnr xapac 6ojih o. H s t s h t xoepTH H xanjiTHH moa YYchhxcsh toxho jiao jia , Tsrui xsm t apraap m oaoop ry iiH spsm Ssjistacsh Aapaajiaji rapraH asax yH A A ^A O(N) xyrauaa 3apuyyjm a.
Heap xoepTbiH MOAbir Aapaax ererAAHHH xhhcbsp Tep jieep h jispxh h jish ty yh aXHHTA3X YHJWIYYAHHr TOAOpXOftA'be.
te m p la te c c la s s Type> c la s s Heap {
Type * a r ra y ; i n t M axS ize , N e l ; v o id a d ju s tH ( in t k ) ;
p u b l i c :H e a p (in t M S ize ) : M a x S ize (M S ize ) {
a r ra y = new T y p e [M a x S iz e + 1 ]; N e l = 0 ;}~H eap () { d e l e t e [ ] a r ra y ; } b o o l in s e r t (T y p e i t e m ) ; b o o l rmm ax(Types i t e m ) ; v o id p r i n t ( ) ;
} ;
R s s p x Heap PCJiaccbiH o 6i>eKT 3apJiarAaxaA M axS ize+ 1 3JieMeHTT3H MaccHB YYC3X 6 a MaccHBbiH 0 Ayraap 3JieMeHTHHr y ji auiHm acHaap heap-A M a xs ize 3JieM0HT o p y y jia x 60JI0M5KT0H. N e l Hb h ea p (M accH B ) A3Xb CYYJl™HH 3JieMeHTHHH 6 aHpJiaJ!bir TOAOpXOHJIHO. 3 h 3 KJiaCCT TOAOpXOHJIOrACOH i n s e r t ( ) cJ)yHKU Hb UIHH3 SJieMeHTHHT h e a p -H H H HQXiyiHHX ajinarAyyjiaxrYHr33p 3oxhx daUpjiajm opyyjm ar. rmmax ( ) 4>yHKu; Hb heap- HHH xaM rniiH h x 3JieMeHT 6 y io y xaMrHHH sxh h h sjieM eH TH iir heap-33C rapraAar. XaM rn iiH hx 3JieMeHTHHr rapracHW Aapaa ty y h h h daiipjiajijx heap- HHH xaMrHHH TercreJiHHH 3JieMeHTHHr 3ooh opyyjiAar. MHr3CH33p yJW3>k
6 anraa M a x s iz e - l 3JieMeHTYY£ Hb heap-HHH HoxuAHHr xaH raxryilA xypH3. MHM33C a d ju s tH O (})yHKU Hb YNAC3H 3JieMeHTYY^HHr AaxHH heap 6 ojiroH H3ru3JiA3r.
LLIHH3 3JieMeHT o p y y jia x i n s e r t ( ) 4>yHKUHHH KOAbir A o o p Y3YYJIJI33- in s e r t ( ) cf)yHKu Hb apryMeHTaapaa u ih h s 3JieMeHTHHr aBax 6 a MaccHBbiH
X3M5K33C X3T3pc3H to x h o jia o jia xynaJi, 6 ycaA YeA YH3H T3C3H y rra 6yuaaHa.
te m p la te < c la s s Type> b o o l H eap < T yp e> :: in s e r t (T y p e ite m ) {
i n t i ;i f (M el==M a:iS ize ) {
cou t << "H eap s i z e e x c e e d e d !" << e n d l;
176
3p3M03ji3jimuuH xyndsemdp apsyyd
return fa ls e ;}i = ++Nel;w h i le ( ( i > l ) && (a r r a y [i/ 2 ]<item ) ) {
a r r a y [i ] « a r r a y [i/ 2 ] ; i /= 2 ;} 'a r r a y [i ] * item; return true;
3aHrKJiaaHyyA 6a iip jiax 6 e r e e A ih h h s sjicmchtssc 6ycaA 3JieMeHTYYfl Gyypaxaap 3p3M63Ji3rAC3H AapaaJian YYcr3G3H G ataa. Hhm a 88 3aHrHJiaar opyyjiaH 3p3M63Ji3X apruH 3ap4Maap 30 XHX 6aHpjiajiA opyyncHaap 99, 88, 77, 50 rscsH Aapaajuiur rapraH aBH h ea p -H ta HexujiHHr xaHraac 6aiiHa.
Heap KJiacCT TOAOpXOHJIOIACOH O0 p H3r «f>yHKU 6oJI heap —33C xaMHiHH HX 3JieMeHTHHI raprax rmmax () <}>yHKU IOM. rmmax () (J)yHKUMHH KOAbir AOOpY3YYJBI33* 3 h 3 (Jjymcjn Hb heap xoocoh yeA xyAaji, 6ycaA toxhojiaojia y h s h y rra C'y^aaHa. Y r 4>yHKU,HHr AyyAaxAaa apryMeHTaA xyBbcariWHH T0JieeJiceH
AaMacyyjieHaap raprax 3JieMeHTHHH y r r a r ojdk aBax 6o jiom xtoh 6ojiho.
int j * 2 *k;Type item * a r ra y [k ]; w h ile (j<=N el) {
i f ( ( j < N e l ) && (a r ra y [j ] < a r r a y [ j + l ] ) ) j++? if(item >=array [ j ] ) break; array [j/2 ] = a r r a y [ j ] ; j *= 2;
}a rra y [j/ 2 ] = item;
}
178
3p3M63A3AmutiH xyndaemap apeyyd
0M H0 TOflOpXOHJICOH in s e r t ( ) (|>yHKU3.a mHH3 SJieMeHTHftr heap -HHH Tercrejm hsm sh Ganpjiajibir o jioxaoo heap-n fiH ^ oopooc assu i W AS-flA m oah li 30BX0H H3r 3aMHH Aaryy iY&nsTrsac 6aftcan 6oji ad ju stH O Hb heap-HHH XaMrHHH 3X3HA 6ailpJiaX 3JieMeHTHHr heap-HftH ASSPS3 4HrJI3JIA M0H H3r 3aMbIH XyBbA TYYHH0I OpBOJI 30XHX SafipJiaJIMf OJIX opyyjmar. a d ju s tH O (J)yHKuAyyAar^axyeArmmax( ) <})yHKU33pTorcnatHitJS sjieMeHT sx sh a (y h a csh 3aHrHJiaaHbi 6aftpjiaJ!A) iuh^ikmhxc3H faYh ac sh 3aHrwjiaaHbi xoep a s a m o a Hb cajiaHriw (xaMaapanryH) heapyycrscsH G a idar ynpaac yhacsh 3aHnuiaar ty yh h # xo£p #34 39HrftJiaaflH ajib h x jrrraTan co jih x 3aMaap A ssp ssc a o o ii io o qnrJisjiA ryftUSTrSiflSf. )Khiii33Ji63JI 11.7 —p 3yparr Y3YYJie3H heap-33c xaMrHHH hx sjieMeHTftHr X3pX3H rapraxbir 11.10 —p 3ypraap Y3YYJIJi3S-
3ypar 11.10. Heap-aac (xaMmMH hx) aneMeHT raprax
11.10 —p 3yparr Y3YYJICH33p xaMrHHH h x sjieMeHT 99 —HHr rapracHH Aapaa TorcroJiHHH 30 rscsH 3JieMeHTHHr yhacsh 3aHnuiaa pyy ihhjdkyyjdk 6aHHa. Y yh h h Aapaa sjieMeHT 30-hht yh acsh 3aHrHJiaaHaac sxjish hx yrraTaif asa 3aHrH^aaHH Aaryy HaB4 xyp ts jix 3aMHH xyBbA xapbuyynajrr xhhxc 3oxhx GanpjiajiHr o jih o . flsspx x h u is sh h h xyBb# xapbixyyjiajrr xhhx 3aM assp 77,
179
Byjise 11
60, 50 r3C3H 3JieMeHTYY# o p w i ix 6e r e e A 30 rscsH yTra Hb 3#r33p 3JieMeHTYYA33C 6ara y ro p naBH xypraJi iuhjdkhhc, 6yca# 3JieMeHTYYA H3r TYBLUHHr33p J3.33IUJI3H I1IHJDKKX 6aHHa.
in s e r t ( ) cjjyHKU, Hb XapbHyyJiaJITbir h e a p -H H H 30BX0H H3r 3aMbIH xyBbA ryHLi3Tr3Zpr ynwp m s jreM eH T 6yxhh h e a p -H H H xyBbA xapbuyyjiajiTbiH to o l o g n —3 3 c x3T3p#3rrYM. XapHH a d ju s t H ( ) (J)yHKU Hb xoep #3# 3aHrHJiaaHbi yrrbfH xoopoHA h 3 M 3 jit xapbuyyjiajiT maapzmar ynnp xapbuyyjiajiTbiH to o2 l e g n — 33c x3Tp3xrynr33p To#opxoHJior#oHo.
H ea p 3p3M63ji3JimuiiH a a eo p u m k
0MH6X X3C3IT 6HA heap ererAJiHHH 6yT3H 60JI0H TYYHA XHHr#3X YHJIAnYYAT3H TaHifJiiicaH. XapHH sh a 6iiii heap auiHDiaH s p m Gsjisjitxhhx 3p3M63Ji3JiTHHH H3r HaMHH aprarat TaHHJTixbfl.
9 h 3 aprbiH roJi caHaa Hb 3P3m63Ji63ji 3oxhx ererjtuiYYA33p heap yycr33jx, Aapaa Hb heap-33C xaMrHHH hx 3JieMeHTH#r AapaajiaH rap rax 3aMaap 3p3M63Ji3JiTHHr ryiui3Tr3A3r. Heap 3P3m 63ji3jithhh ajiropHTMbir Aapaax heapS ort ( ) (}>yHKU;33pTOAOpxOHJIJIOO. heapSort ( ) cf)yHKU;HHH apryMeHTaap 3p3M63Ji3r#3x MaccHB 6o jioh ty yh h h x3MX33r AaMacyyjiax IOM.
te m p la te < c la ss Type>v o id h ea p S o rt(T yp e a [ } , con st in t n) (
Heap<Type> h e a p (n ) ; in t i ;f o r ( i^ O ; 1 <n;■ i+ +) .
heap . i n s e r t (a [ i ] ) ; fo r . f i^ n - 1 ; i >==0 ; i~ ~ )
11.11 - p 3ypraap H3r sjieMeHT hsm chhh aapaax heap 6yph h t Y3YYjicsh 6aima. Caapjiaap 6yAar/*caH 3JieMeHT Hb uiHH33p opcoH 3JieMeHT 6e re eA to a xap xoji6oocoop xapm yyjia jiT xhhh ihhjdkcsh 3aMbir xapyyjuiaa.
11.12 —p 3yparr heap-33C rapcaH sjiejvieHTYYAHHr m oah h caapaji 3aHiHJiaaraap AYPC3JIC3H. M o a 6yp33p TyxaHH heap-33c xaMrHHH hx 3JieMeHTHHr rapraaA, y m c s h aJieMeHTYYOTHr flaxHH heap 6o;iroH ijsrusjicHHH Aapaax SaHAJibir xapyyjuiaa.
3p3M63Ji3JiTHHH ajiropHTMHH yeA xapbixyyjiaJiTHH Toor aHxaapaxaac raAHa caHax oh h auiHrJiaJiTbir aHxaapax X3p3iT3H. Heap KJiaccbir aumrJiacaH A33px anropHTM Hb 3p3M63Ji3rA3x ererAJiHHr aryyjiax a MaccHBaac raAHa moh ioch ji x3M5K33HHft Tycjiax (heap KJiacc Aaxb) a r ra y MaccHBbir amHDiaac 6aMHa. H&M33C h eapS ort ( ) (fjyHKIJHHr 3p3M63JI3rA3X a MaCCHBblH XyBbA UiyyA aaauuiaxaap 6o jiron eepHHJUK caihKpyyjl'bfl.
flapaax cJjyHKUHHH ko ao o p heapSort ( ) 4>yHKUHHH e e p m a c e ii xyBHJi6apbir Y3YYJW33.
181
3ypar 11.12. Heap awMrnaH 3P3m63hsx apra
template<class Type>void heapSort (Type a [ ] , const int n) {
rapiaxc, heap-HHH xsMJKasr H srsap 6aracaH a d ju s tH ( ) (jjyHKHHiir a y y fla x Miixuh h ea p S o J iro x 6aiiH a. M h ts c h s s p h eap -3 3 C rapcaH S J ieM e in yya u u cHBbiH T e rc re jie e c s x jish 6aiip jia jiaa o jio x 6a TSAresp sjreM eHTniir h eap - *n|KwmyyjiaxTYH. 0epeepx3J i63J i ad justH ( ) 4>yHKH3AAaM >Kyyjiaxi-i yrraap h ««p -H ttH TercreJ iH iir to a o p x o h jd k 6aiiHa.
l.«.ipSort() (JjyHKHHHH 3XHHH aJIXaMA h e a p 6aHryyjiaxaaa a d j u s t H () •|>\ MKUHHr xarac SJieMeHTHHH xyBbA jiyyA a * daMna. a d j u s t H () 4>yHKH Hb um i hAh hxass l o g j t xapbuyyjiaJiT (6yioy ihhjdkhjit) xhhast. H hm ssc h e a p fl.thryyjiax anxaM (n/2 ) l o g i t xapbuyyjiajrr maapAAar. H e a p yyccsHHii Aapaa »p iM63JI3JITXHflX aJIXaMA M0 H a d j u s t H () 4>yHKHHHrN-l SJieMeHTHHH xyBbA n y y n a x 6aftraa ynnp (n -U I 0 9N xapbiiyyjianT xhhtashs. Mhm 3p3M63Ji3JiT • IlltX h e a p S o r t O (JiyHKHHHH HHHT XapbltyyJiaJIT (3 / 2 )N jo gN 6 0 JIH0 . 3H3 >P >m63ji3jithhh apruH H3r oHHJior Hb opojiTHH ererAJieec yn xaMaapaH
( ».imi'hhh cate/M yy, jiy n jia x aJib li toxho jiao jia ) oH pojm ooroop o (N lo g t i ) i vi anaaHA axw uiaaar.
lliiH J iyyA 3H 3p3M f)3Ji3x apra
tp jm 63J I3 jithh h s h s a jirop H T M Hb 3p3M 6sJi3rAC3H x o e p acarcaa iiT b ii' ii i i l i j iy y jia c , h s t t o m 3 p 3 M 6 s ji3 rA C 3 H aca rca a jiT y y c r s x a p ra az>3p ■,M«3CJi3rAC3H. 3 h 3 a p ra H b aM bApajiA e p r e i i a iu w r j ia r A a x 6a iiA a r . A iiiu33Ji63ji eH Aep HaMaapaa x a rc ca H xoep aiirHHH cyp a m ab ir H ar 3IH33HA
MaccHB amHrJiaarYftYeflH H H JIYYJI3JITIIftr 0 (N ) aJixaMAxhhx 6ojioM*ryH iom.
X a p H H hh!ijiyyji3x aPra H b (xojiSooct) xarcaa^TbiH xyBbfl x a M r H H H TOXHpOMHCTOH, H M a p M H3M3JTT 3aft Hiaapflaxryftrssp ryHH3TT3JK Q o j l R O r .
Hhhjiyyji3H 3p3M63Ji3x ajiropHTM Hb xscsrJisH-HsrTrsx apraap ererjvuiftr xoep xscsrT xyBaaH 3psM6sj1ss.it, apaa Hb xoep xscrss hhhjiyyjtsx 3apHMaap 3p3M6sJISJITHfir ryflH3Tr3,II3r. ^apaax m e r g e S o r t () 4>yHKH33p HHHJiyyjI3H sp3M63Ji3X ajiropHTMbir yayyjuiss.
template <class Type>void mergeSort(Type a [ ] , int n) {
Type *tmp ~ new Typefn]/ divconMerge(a, tmp, n-1); delete []tmp;
r — H H r h h h jiyyJK K o r rapraH aB4 s x m i i i as —xaii h m m jiyyJ Ichssp a o r s rs c s H
3p3M 63Ji3r4C3H x a c r n i i r 6 h h 60/1 ro H o . JJapaauMHH a e p u e H 3/ieMeHT3xi m s h
a^HJi YHJiAJi33p g 1 n t T3C3H x s c m i i r rapraH aim s x h h h a o r s — Tati
HKHJIYY-fICH33p A G I N O R S T T3C3H 3p3M63JI3r/IC3H XSCI'MIir 6 H H 60J1T0>K
6 a t H a . 3 h s m s t s s p p e ic y p c T Y f i J W H i iH Y P A Y H fl 6 h a h h h e r e r j i e j i
3p3M 63JI3rfl3 }K 6a ftH a .
| A | S | O | R | T i |n |g |e |x |a |m |p |l |e |
IAJ s. L i... 1 * T T ‘T 1
1 1 10 1 R 1 / M i l l HI" I T !| A |° | R j S ( 13ftI I I. I I I I I -1□ . T r m ^ r r r n m nr 11 ■■■ 1" 1.1 i i GiNf : j ! 1 mmM W 1 initi 1 1 1 m 1 1|a|g|1 1n 10 R|s|T| 1 f ,| 1 1 ;| ,j
1 I I I I I I 1 1 E I X | | | | | ’|1 1 'h i l A lMl 1 1 1
r r r r r 1 1 1 a I E 1MI X 1 1 1 !I T 1; V:f; 1 I n ..I I 1 1 |L|P| 1FTTTT 1...I I 1 1 1 |e|l|p|
tem p la te < c la s s Type>v o id merge (Type a f ]., Type tmp [] , in t low , in t mid, in t h igh ) {
in t i , j , k ;f o r (i= m id + l; i> lo w ; i « - ) tmp [ i -1 ] a [ i - l ] ;f o r (js=mid; j< h ig h ; j+ + ) tmp (h igh +m id -j ] - a [ j + l3 ; f o r (k= low ; k<=*high; k++)
a (k] = ( tm p [i ] < tm p [ j ] ) ? tm p (i++ ] ; t m p [ j - - ] ;}
HUH/iyY-irax xoep m v j k h K h # 33^4004 xjnraapyyixBir /jaMxyyJiHa. H h h j i y y ^ x xoep Myacwta 3JieMeHTYyn M a c c H B W H aapaancaH (3aJiraa) 3JieMeHTyy,5 6aftx ynnp m id HHfleKcssp H3r MyacHHH JJ.33& xasraap 6a H eree M yxH iiH aooa XH3raapwr toaopxohjek 6ojihq.
Xlsspx merge () cJiyHKH H b xapyyji 3jieMeHT aumntaxryH. y ^ m p H b xoep Myacur Tycjiax M a c c H B T xyyjiaxnaa x o e p a y r a a p u y x u i i r 6 y y p a x s p 3 M 6 3 3 p
HHHJIYYJ13H a MaccHBT 6yua a H XHHXA33 3 X H H H MyjKHHH flOOpOOC (HHfleKCHHHe ce x HHnisjm), H e ree MaccHBbiH #33p33c (hhhskchhh ypyyaax iH n o a # ) sxjish 3JieMeHTYYflHHr aBH xapbuyyjiHa. XspsB ajib H3r mjqkhhh sjieMeHTyyfl 3X3JI* ayycax toxh o jiao jia T3p MyxcHHH HHfleKc H eree My*HHH xaM rwta hx 3JieMeHT A33p 6aKp/iana. H hm ssc Tap xaMrHHH six 3JieMeHT e e p H ta x e s My>KHta 6ycaa 6yx sJieMeHHHH xyBbji xapyyji ajieMSHT 6o;iox ynnp 3eBxeH T3p MyXHHH Hi weKC xyfibcax Sojiho-
11.13 - p 3ypraap a s o r t i n g e x a m p l s T T3Ma3rTYY#HHr xspx3H 3p3M63Ji3XHHr Y3YY-ri;133- M ep 6YPT 3eBxeH merge ( ) cj^yHKUHta yp AYHr xapyyJicaH. 3 xh h h hhh4YYji3j i t33P A 6a s —Httr h h h jiy y ji* a s, flapaa hb o 6a
Y3yyjix Sojiho. 3 ha 6ha hhm 3arBapBir 3opujiebiH Modoop xoaopxoMaoH
X3JI3JIH3X 60JIHO.
s —Hftr a,, a2, ... , an racaH n ererflxiHHr apaM6ajiax aoropHTM r a x y3se. TarBaJi s aJiropnTMLiH 3opHJiruH m o a h t n f raAaaA aaH in aaa 6yx n ii o p r e T re c e H xoepxb iH T m o a o o p y 3 y y j ix 6o jih o . 3 h s m o a h u raAaaA jaHriuiaaraap n e re r a e ji (c a a ra n ) 6aiipaax 6yx 6ojioMXHHr HaapxHMana. A o t o o a 3aHTHJiaaraap s aa ropw xM a x a a a a x a A x n iirA a x n a ra a x a ii xapbuyyjiajrryyAbir Toflopxo fijiox ynnp a o to o a saHHraaa 6yp (ynaH xyAan T3C3H) xoep rapajiTTaii 6y io y xoep AaA aaHraaaaxaii 6aiiHa. M hm a a,, a2, ...
, an racaH n ereraaHiir apaM63aaaxMHH HMap Har aaropiixMaap ap3M63JiaxaA
yp ayh hb t 3opHJirHH moahbi aJiB Har naB4 rapax 6oaHo. TarBaa s aaropHTMHH xaMrHHH Myy toxhojiaoah xniirAax xapbuyyaaaTUH too hb t
SHflHHH aBCaH 5KHIH33HHif ererflJIHHH X3MX33 Hb XOepblH 33p3IT oftpannoo yHHp xyBaar^ax a 3# xscryYAHHH t o o 6 o a o h xsm*33 hb ofipcwmoo xapar.ua*
188
X a H J i T b i i i 3 H I H H H a p r y y #
E y ^ r 1 2
M3A33JUIHHH CHCTeMHHH H3T YHAC3H YHJIA3JI 60JI X3HJIT IOM. XaHJIT Hb TOflopxoH H3r (x a c a r ) M3fl33JiJiHiir 6MH0 yycrsH xaArajicaH hx x sm x s s h h h M3A33JMHHH CaHraaC OJIOX YHJIA3JI IOM. EpeHXHH TOXHOJIA0J1A M3A33JI3JI Hb o jio h t o o h h 6hmji3tyyA33c t o i t o x 6a 6H'iJi3r 6yp xaax TyJixyyp Tan6apTaH 6aifepp. H x s h x to x h o jia o jia xaiijiTbiH ro ji 3opHJiro Hb xaftx Tyjixyypssc ra/ina I'YYHfl xapraji3ax e n 'u is n i i i r o jio xo a opum or. )Km u33;i6ojr aHrjui xs jiiih h 3JieKpoH to j ih o c y r xaiix jiaa 6h a T3p yn iH H o p iy y ju ’a 6o/ioh TaftJi6apbir o j u k aBax 30pm ir0T0H 6aHAar. 3 h s M3A33JTJIHHH ch ctcm a y r Hb "TyJixyyp” 6o jio x 6ereeA T y x a to y th h h TaiiJi6ap 6o jio h opn yy jira Hb “ 6H iri3 r” 6oJiflor.
TyJixyyp Taji6ap 6ojioh xafljix x h h x yhjiasji Tyxaim xspsnisaHssc xaMaapn
HJiraaraitraap TOAopxoitnorAAor. 3 h s 6yjir33p 6 h a Maui 6ara X 3 m * 3 3 h h h
ererjyiMHH xyBbA yp auiHrraH 6attx xaiuiTHH 3 a p H M sHraftH apryyATaii sxjis h
rafiHJiuaHa. Xaitrnr x h h x s a aaBxapAcan TyjixyyprsH 6H>ui3rYYAHHr xspxsH
60Ji0BcpyyjiajiT x h h x H b TyxaiiH xapsrjissHssc xaMaapaar. Y y H H H r
joxHuyy/iax Hsr apra 6oji 6 H l(ji3ryyaHHr aryyjiax yhacsh e r e w i H H H 6yT3H
iib 30BX6H anraaxaft TyjixyypyYA Gyxnii Sh'uisihhi’ aryyjma. X a p H H 6nH;or
6yp h x h j i TyjixyypTsii ekiJisryyAHHr 3aax hsmsjit xoji6ooc aryyjix 6ojiho.
3 h s toxhojiaojia 30BX0H H3r yAaaraftH xattJiTaap ererAceH TyJixyyp 6yxHii 6yx 6nHJi3rHttr ojdk aBAar. 0 e p H3r uiiiham H b AaBxapAcaH Tyjixyyprsii
''>iriJi3i yYAniir yijacsii eroi7i,iniin 6yr.rj.3A Tap 'inrasp y w ^ 3 * xapHifxaiiJrraap
)X3juk ojiacoh Ha j Gn'uiamiii aBAar. 9ii3 aprbir AaBxapAcau Tyjixyypiaii rni'iJisryYAHHH ajib iib coHrorAox Hb uyxaii 6hiu t h h m xspsniasHA auiiirJiaAar.
I'ypaB Aaxb uihhasx apra 6oji Tynxyypsac raAna 6ycaA 6 h’UI3it yrra H b
(AaBTarAaxryii) raji6apbiH yrraap x h h x 6ojiho. 3 h s mstihjish q o p h h h
6oAJiorbiH uiaapAJiara, x3p3rJi33HHH oHtyiorr Toxnpyyjix hh3 6 y p h h h apra
auiHrJiaac 6ojiho.
Eyax 11
3 y p a r 11.15. n=3 ererflrwflr xapbtj,yynan 3p3M6sn3X 3opwirbiH MOfl
n ererflJ iH flr 3p3M63Ji3X ajiropHTMHH 3 0 p h jith h m oa Hb n ! ra^aafl 3aHnijiraaTaii 6airaa. n! raAaaA 3aHrnJiaaTaii xoepTHH m oah h ryH d HAa* l o g 2 ( n ! ) SaitAar. CrapjiHHraitH Towbeo ecoop
n! = VScnt—)n(l + — + ...) = im(—)n(l + 0( 1/n)) e 12n e
6e r e e A 3HA33C n ! > (n / e )" 6yioy
D > l o g ? ( n / e ) “ = n l o g 2n *- n l o g 2e = Q ( n i o g n ) Sojrao. ( e - 2 .7 18 )
HHM33C l o g 2 ( n ! ) = Q ( n l o g n ) 6o/lox hb xap arA ax SaiiHa.
template <class keyType>int seqSearch{keyType a [ ] , keyType x, int n) {
int i ;f o r ( i= 0 ; i<n; i++)
i f ( x .== a [ i ] ), return i ; return - 1 ;
}
template cclass keyType>in t seqSearch(keyType a [ ] , keyType x, int n) {
i f (n < l ) return - 1 ; i f ( x == a [n - 1 ] ) return n - 1 ; return seqSearch(a, x, n -1 );
}
seqSearch () (J)yHKHMHH apryMeHTaap MaccHB, xanx ty jixyyp^h h yrra 6ojioh MaccHBHH x3M3C33r A a M x yy jm a . X a n ca H ty j ix y y p o t o t a o j i o jia co h to x h o jia o jia MaccHBT 6anpJiax HHfleKCHHr 6yu;aax 6a xapHH oJiAooryil toxh o jiao jia — 1 T3C3H yrra 6yu;aaHa.
IIIyraM aH xaiiJiTHH ajiropHTMaap xaHjrr aM^KHJiTTyH 6o jicoh toxh o jiao jia n+ 1 xapbijyyjiaJiT XHHrAftsr 6oji aMHaurrraH 6o jicoh toxh o jiao jia onpojiuooroop n/2 xapbiiyyjiajiT xKnrAA3r. O opoop x3ji6sji xaMrHHH Myy to xh o jia o ji 6yioy MaccHBT xancaH orofAOJi 6aHxrYH yeA MaccHBbiH 6yx sjieMeffrrsH xapbuyyjiax 6a ajiropHTMHH aaauuiax xyrauaa O(N) 6aHria. XapHH xaiicaH sJieMeirr MaccHBHH ajib H3r 6anpJiajiA 6anx 6y ioy ajiropHTM aMHCHJrnraH aaouuiax toxhojiaojiaxapbuyyjiaJiTHH a y h a ^ k y rra ( 1 +2+ . . .+n)/n = (N+i) /2 6ojiho.
PeKypcT search () <J)yHKijHHr AyyAaxAaa apryMeHTaap acarcaajiTbiH 3XJi3JiHHr AajvoKyyjiax ecToii. vKarcaajiraH sx jis jm n r 3aax head 3aar4 Hb LinkedList KJiaccHH private THUIYYH y4Hp raAHbl <|)yHKU33C xaHAax spxryn. M&M33C )K arcaajiTH H s x j is j ih h t ap ryM eH T aap AaM acyyjiaxAaa 6 —p 6yJi3rT TO AopxoiiJ icoH ge tH ead ( ) n u n yyH 4>yHKiiHHH TycJ iaM X Tanraap l is t .s e a rc h ( list.getH eadO ) T3)tC AYYAHa.
else if (x > a[mid]) r e t u r n binarySearch(a, x, h i g h , m i d + 1 ) ;
else r e t u r n b i n a r y S e a r c h ( a , x , m i d - l , l o w ) ;
>)
9 h 3 pexypcT (J>yHKU Hb e re r flra iir xoep asa MyxHA xaracjiaH xyBaax 6a H3r yaaaraiiH peKypcTflyynairr Hb 36BxeH anb H3r MyxHftr uaam xyBaaHa. XapHH SHflHHft oMHe Y3C3H xscsn isH - HsrTrsx aJiropHTMbir auiHniacaH xypflaH 3p3M63Ji3JiTHftH apra, cyypnap 3p3M63;i3x apra 33psr Hb xoep yuaaraiiH peicypcT 4>yHKH33p xyBaarflcaH asa xscsr SypT 6o;ioBcpyyjiajiT x h h x Gattcan. h i g h 6a l ow apryMeHTyynaap xoepraH xaiurraH cjjyHKUs# o p x Hpax MyxHita A33A 6a a o o a XH3raapbir TorrooAor. XspsB ao oa XH3raapbiH yrra A33A xjoraapaac hx 6y ioy xoocoh M yx o p x HpsxsA xaiijrr aMXHJrrrrYH 6o;iho.
12.1 —p 3ypraap a s e a r c h i n g e x a m p l e ereiyyieec yycBx 3p3M63Ji3rflC3H ererAJieec M sjieM eH raftr xaftx yH/iAJiwiir Y3yy/M33. 9 h s x h h is s h a 4 xapmyyjia^TbiH Aapaa m 3JieMeHT o a h o x 6aftHa.
|a |a |a | C [E|E|E| g B § I | l |m | N | P | R | S | X [
XoepTbiH xaitiiTbiH aJiropHTM Hb (xaiuiT aMXHmrraH 6a aM XM Tryft) HMap'i toxhoa^oah logN + i -3 3 c HJiyy xapbuyyjiaOT X H toytt. 3 h s aJiropHTM Hb ererAJiHflrajixaM6ypTxaracflaH xyB aaxy iH pc (i) = l 6a iix c (N ) - c (N /2 )+1 peKypeHT TOMteoroop TOAopxoiuiorAOHo. 2 —p SyjiriiKH peKypeHT TOMbeo2 —Httr y3 .
(3p3M6an3JiT XHftxryft) to itm o ji xyraqaa 3apuyyjDK, xaitirrafl AapaanaH xaftx myraMaH xaftjrrbiH aJiropHTMbir auiaraax Hb roiyy YP ainHrraft 6a f t * 6ojiho.
XoepTbiH xaiiJiT
XspsB ererfleJi Hb 3p3M63Ji3rAC3H 6oji xacsn isH -Hsrrrsx aprbiH 3apiMaap xaftjiT xHftx Hb xaftrrmH xyraiiaar 6aracrax erfler. 3 h s apra Hb ererAJmftr xoep xscsrr xyBaaH xaftx 3/ieMeHT ajib xscarr 6aftraar TOAopxoibiAor. Hftvrasc 3H3 anropHTMHr xoepmbiH xaunm raflar 6e re e fl flapaax b i n a r y s e a r c h ( ) (J)yHKH33p H3BTPYYJW33-
te m plate<class Type>
int b i n a r y S e a r c h ( T y p e a[], c o n s t T ype x, int n , ) (
SaifoK Sojiox 3aBcapbir hjiyy napHHH Toaopxoiijm 6o;iho. 3 h s apra h b 6 huh 11 ii TejrecfjoH yxacHU JiaBaax hom, TOJib 6 m m 33prHiir am nia ax apraTaii aa«a.
XaiiJiT Hb MOflHbi suib Hsr 3&mmh Aaryy xhh fasx 6a x a it a aMHOuiTryft 6ojiox toxh o jw o jw TyxaiiH 3aMbiH Aaryy 6aftpjiax yhacsh aaHrHJiaaHaac sxjissa HaBi xyprsjix 6yx sJieMeHTrsH xapbuyyjiafiT xiuirAAsr. Hhmssc xapbuyyjiariTHH t o o Hb m oahh X3Ji63p33C xaMaapHa. 11 —p 6yJir33p 6 ha m oaoha opox- ererAJiHHH Aapaamaac xaMaapn m oahh X3ji6sp eep eep 6aHArHHr msacsh 6hji3 3 . TyxattJi6aJi 3 p3 M63^3 rAC3 H ererAJieep moa 6aiiryyjiaxaA Tarnyy moa yycsx 6a m oahh eHAep n 6aflAar. Hhm ssc xaMTHHH Myy toxho jiao jia n 3aHrHJiaaTaH xoepiH H xaitirrHH moa Hb n xapbiiyyjiarrr XHHAsr. XapHH n 3aHraJiaa 6yxHH ryHH3A xoepruH m oahh eHAep Hb io g tn+i 6anAar. Hhmssc ryiinsT xoepTbiH xaHJiTbiH m oahh xym>A xaHirraap xhhtasx xapbuyyjiajiTHH to o HMap h toxho jiao jia 0( Jog2n) 6aHHa. 12.4 —p 3ypraap Tarnyy 6ojioh ryiiHSA m oah t y3Yy.aJi33-
3ypar 12.4. XoepTbiH xannTbiH moa: a) Tarnyy moa, 6) ry fiijs fl moa
0MH0X 6yjir33p Y3C3H XoepTbiH xaHJiTHH MOA Hb KOMIIblOTepHHH MaiH OJIOH X3p3rji33HA nyxaji YYP3rTSH Sojiobh 3apHM to x h o jia o jia YP aum r MyyraH Oatoar. TyxawjiSaji xoep raH xaiurrbiH moa xaMniHH Myy to xh o jia o jia xaifarr 6 o jioh 6ycaA YWJIA3JIA o (n ) xyrauaa 3apuyyjiAar. H h m ssc ajiropHTMHH rYHU3Tr3JiHHr caiDKpyyjiaxbiH TyjiA m o a h t xaMTHHH M yy to x h o jia o jia opyyjiaxryH Ganxaap 3oxhoh Ganryyjiax xspsrrsH . M o a h t 30XH0 H 6aftryyjiax hhm a p rn r 6ha 3H3 6yjits3p cyAJiax 6ojiho. 3 h s a p rn r dananc/iax 6yioy mBHiiyyAsx apra rsx 6ereeA tsh u bsp t moa YYcr3X X3A xsash ajiropHTM Gaidar.
A V L m o ,h
XoepTbiH XaHJiTHH MOAbir A3A MOAHbIX Hb OHApeep TSHUYY^3^ H3T3H ap rn r A deisop -ve isk ii 6a Landis Hap aHX rapracaH. n 3aHTHJiaa 6yxhh hhm tsh u b sp t m oahh x air j i t 6ojioh 6ycaA YHJIA3JI O ( I ogN) xyrauaaHA XHHrAA3r. AJiHBaa yiiJiAJiHMH YP AYHA YYC3x moa Hb moh tsh u b s p t moa 6aHHa. Hhm MOAbir av l moa rsac HspjisAsr.
X oocoh m o a Hb t s h u b s p t m o a 6aHHa. XspsB T , t l rscsH 6apyyH 6a 3YYH A3A MOATOH XOOCOH 6h UI T MOA Hb
(1 ) T r 6a T l Hb M6H T3HUB3PT MOAYYA(2 ) |hR - hLl < 1 , hRHb T r A3A MOAHbl OHAep 6a h L Hb TL A3A MOAHH
0HA0P
T3csh HoxiuiYYAHHr xaHraAar 6oji t MOAbir oHApoop 6ajiaHCJiarAcaH ts h u b s p t m o a 6yioy a v l Mod rsAsr.
f ls sp x TOAopxoHJiojrr ecoop m oaoh Aaxb 6yx asAMOAYYA tsh u b s p t moa 6atfx uiaapAJiaraTaH. 1 l-p 6yJirHHH 11.5 —p 3ypraap Y3YYJIC3h xoepTHH xaHJiTbiH moa Hb tsh u b sp t moa 6hui iom. Ymmp Hb 3aHrH-Jiaa 15 3yyh A3A MOAryn 6yioy
200
7 3Hl{63ptYl MOd
3WH a sa m oahh eHAep 0 6aiixaA 6apyyH asa m oahh eHAep 2 6 aiiHa. G ep eep X3Ji63Ji3H3 3aHrMJiaaHbiASAMOAyyAHH flJiraBap|hR - hL| =2 6aiina. Gmhox 6yJirHHH 12.4 —p 3yprtiH (a ) moa Hb tsh u b sp t moa 6mui 6oji ( 6 ) moa h lTSHUBSpT MOA IOM.
a v l m oaoha HIHH3 sjieMeHT opyyjiax YHJTA3J1 Hb xoep aJixaMxaw xuiirAAsr. 3 x h h h ajixMaap lumhs sjieMeHTMiir xoepTHH xaiiJiTHH m oaoha opyynax epAHHH yHJWiHHr auiMmaHa. YAaax ajixaMA uimhs sjieMeHT opcHbi Aapaa YYcsx MOAbir a v l moahm H6xujimmt xaHrax scsxhmx majiraaA, xaHraaryii
TOXHOJIAOJIA y r MOAbir T3HUYY^3X YH^ASJl XMHA3r.
XoepTbiH xaHJiTbiH m oahh 3JieMeHT opyyjiax YHJiAA3sp uimhs sjieMeHT h l m oauh H3r HaBii 6ojioh opAor. H H rscH 3sp yr naBli xypsx 3aMbiH Aaryy 6aMpjiacaH 6yx 3aHrMJiaaHbi eH Aepr HejieejiAer. XsAM iirssp uimhs sjieMeHT 6aftpJiax 3aMbiH ypT H srssp HSMsrAsx 6ojiob ii 3apHM toxh o jiao jia avl moahh HexuJiHHr sB A sx ry ii ( t s h u b s p t s h x s b s s p ) 6aMx to x h o jia o j i 6 aMAar. >Kmui3Sji6sji T Hb hL = hR + 1 HexuJiHHr xaHrax avl moa 6aiir. TsrBSJi u ihhs sjieMeHT 6apyyH t r a s a m oaoha opcoH rsBSJi t p —hhh OHAep Hsrssp HSMsrASH h*R = hR + 1 6ojiho. 3 h s 6y tah h h yp AYh t moa Hb h*R ~ h L —0 H exiy iH iir xaHrax a v l moa xsbssp 6aMHa.
3cpSTS3p, UIMHS SJieMeHT Hb Tl 3YYH A3A MOAOHA opox TOXHOJIAOJIA TL — HMH eHAep H srssp HSM srAsx, h *L = h L + 1 6 o jih o . M hi schssp t m oahh asa MOAyyAHH eHApuHH 6ajianc Hb hR - h*L = 2 6ojdk a v l m oahh HexiyiMMr xaHraxryH. H hm ssc t m oaoha a v l m oahh HexiuiH iir xaHrax eepHJieJiT xhhxXSpSITSH.
Tshubsp Hb ajiAarAcaH a v l MOAHr apeyynax yhjiajimhh TycjiaMatTaiiraap 6yuaa»c tshubspt moa 6ojiroAor. M oahh TyxaHH X3ji6sp3sc xaMaap4 AepBeH hh3hh spryyJi^T XHiirAAsr. 3Arssp spryyJisJiTMMr rypBaH 3aHrHJiaaHbi xyBbA xspxsH XHHrAsxHHr 13.1 —p sypraap ysyy^^3-
13.1 —p 3ypraap Y3YY^csh r r 6a l l sprYY^sJiTYYflHHr AaH spryyJisJiT rsAsr 6 oji r l 6a l r sprYY-HSJiTYYA Hb xoep AaH spryy^SATSsp xniirASx ynnp AaBxap spryY^sJiT TSHS. a v l m oah h tsh u b sp h h x 6 ha 3aHrHJiaaHbi tshubsphm h K03(Jx|)HUHeHTHHTycJiaM)icraHraapT0A0px0HJiA0r. 3aHrHJiaaHH tshubsphmh Kos4>4)HUHeHT rsAsr Hb y r 3aHrHJiaaHbi xoep a sa m oahh ajiraBap hR - h, IOM. AVL MOAHH aJIHBaa 3aHrHJiaaHH TSHUBSpMMH K034)(})HUHeHT Hb + 1 ,0 , -1 yTryyAH H ajib H sr 6aMx c c to h . <Z3,yYP3H xoepTH H xaiiJiTbiH m oah h 3ahrnJiaaHyyAHh tshubsphm h Kos4>(}>MUHeHTyyA 6yrA 0 6aMAar. Ynup Hb HMap q 3aHniJiaaHH 3yyh 6a 6apyyH a s a m oahh ohapyya aAMJixaH. 13.1 - p jyparT3aHrHJiaa Syphhh xapajwaa xapraji3ax tshubsphm h Koscfx^Muue htmm r
TsHUfidpm Mod
# aBxap spryyjisjrr Hb xoep flaH spryyjisjrresc Torraor. Gepeep xsjiSsji rl AaBxap spryyjisjrr Hb sxjissji ll flaH spryyjisjrr XHftresa, flapaa Hb rr ash spryyjisjir x h h c s h t s h a p j a j i . XapHH lr flaBxap spryyjisjrr Hb 3XJI33A rr spryyjisJiT xaftrssa, flapaa Hb ll £aH apryyjrajiT xniicsHTsft aflHJi. 3 h s 'jaHapbir a vl m o a h h H3BTpyyji3JiTHiiH flaBxap 3pryYJi3JTT3,zi aurarJiax Sojiho.
3ypar 13.3. LR Aasxap 3pryYn3nT
r r s p r y y j i s j r r H b l l sp ryY J reJ rrrsH , r l s p r y y j i s j r r H b l r s p r y y j i s jn r s H T s n i i
X3M T3H y n a p t o j i h h x y B H p ra jia a p r a p a x y p JTYH S o j i h o .
flapaax ererfljraiiH xnftcBsp Tepjieep a v l MOflwr TOflopxoftJite. A VLt r e e
KJiaccur flypbiH erer/umim t o p j i h h h xyBbA auiHmax yy#H33c 3araap KJiaccaap
6a 6apyyH AaH 3 prYYJ'3JiTHHr ryHHSTrsx 4>yHKUYYAHiir H3BTpYY-'i3X3A xaH rajrrraH iom. XapH H AaBxap spryYJis-rr xw iix u iaapAJiara rapnaji t y y h h h i-
op yy jia x (y c T ra x ) (j>yHKU3A u iajiraH A33p x cJ jyhkhyyabsc T o x n p o x x o e p w r Hb
ZfyyAaX 6ojiho. rrRotate ( ) (})yHKH33p XHHl’ASX AaH spryY-HSJiTHHr 13.4 —p syp raap \ 3 Y \ n r i3 3 .
3yparr Y3yy/icH33p, 4>yHKU axcHJiJiaac s x jis x s a p Hb 10 3aH n u iaa r a a a x
OaficHaa 30 3aH n iaaa r 3aaxc eep'iJierjiceH. M h ts c h s s p cjjyHKUssc 6yuaxaa10 3aHTHJiaaHH sx 3aHrHJiaa 30 3anrH J iaaH b i s x 3aH rn/iaa 6 o j ih o .
9pryyji3JiTHHH a a p a a 3aHFHJiaaHyyAHH ts h u b s p h m h K.03(t)(j5MUHeHT0A
YYC% xapHH i TyJiXYYP e j R TyJixyyp 6yxhh 3X 3anrHJiaa pyy juihjukhh e , i , r T3C3H 4-3aHTHJiaa 6o jih o . Y y h h h Aapaa g 3JieMeHT h TyJixyyp 6yxHft 2- 3aHnuiaaHA o p x 3 -3aHnuiaa YYcr3H 3.13.5 —p 3yparr y3YYJIC3H sxhhh moaoha g 3JieMeHT hsm chhh Aapaa yyc3x MOAbir 13.5 —p 3yprHHH AapaaqHHH moaoop
j js s p x i n s e r t ( ) <|>yHKIJ HB IHHH3 3JieMeHTHHT XOepTHH XaHJITLIH MOAHLI3apM[Maap m oaoha opyyjiHa. Y yh h h Aapaa 3aHrHJiaaHyyABiH T3Hii,B3pHHH
^33px 3apjiajiTaap 6yx3Ji tooh ororAeJi xaAraJiax a v l moa TOAopxoHJiorAOHo. flapaa hb a v l moaoha in s e r t ( ) 4>yHKmiHH TycjiaMXTanraap hihhs eievRen H3M3C 60JIH0.
t. i n s e r t ( t . g e t r o o t O , x ) ;
t .p r i n t (t .g e t r o o t ());
UIHH3 3JieMeHT H3M3X 6ypT33 AVL MOABir X3BJI3B3JI 3pryYJI3JIT33p T3HUB3pT moa X3pX3H YYcr3X™ r hjiyy otaroMacronroop y33x 6ojiho. a v l moahooc
206
T3HU,63pm Mod
moa YYC116aiiAar. 13.7 —p 3ypraap a s e a r c h i n g e x a m p l e 3JieMeHTYY£33C YYC3X 2-3-4 MOAbir Y3YYJW33.
n 3aHraJiaa 6yxHH 2-3-4 m oaoha xh hx xaiurraap xaMrHHH HXA33 l o g n + i
3aHrajiaa m ajirarAAar 6oji opyyjiax yh jiaassp x a M ra ta Myy to xh o jia o jia l o g B + l 3aHrnjiaa 3aAapHa. XapHH epeHXHH toxh o jiao jia AYHA^aap h stssc x3Tp3xryH 3aHTHJiaa 3aAapAar.
3ha33c 2-3 -4 MOAbir auiHTJiaH xaiiJiT xhhx Hb Maui yp auiHiraH aJiropHTM rapax 6ojiobh nporpaMMHJiax 3yt33c 2-, 3-, 4-3aHmJiaaHyyAbir H3BTpyyji3X3A acyyAaji yych3. Y yh h h x M3A333K HMap H3r apraap uihhas^k 6o jiox 6ojiob ii aJiropHTMWH aacHJDiax xyrauaaHA Myyraap H ojiee jiex , u,aaniHJi6aji epAHHH xoepTHH m oahooc yAaaH 6o jiox Tajrran. XsAH H iiresp MOAbir T3HJH3pT moa 6o jito x Hb xaHJiTbir caifaKpyyjiax ^yxaJi Tajrraii 6ojiobh h k h t aATop^TMHH aacHJuiax xyraijaa Hb YYH33C i h jiyy nyxaji iom.
XapHH AapaaqHHH c3AB33p 2-3 -4 m o a h t cTaHAapi xoepTbiH m o a aiUHniaH Maui yxaajiar u ih h ac s h h s t aprbir y33X 6ojiho .
YjiaaH-xap mo#
2-3-4 MOAbir xoepTHH m oaoop 3aHrHJiaa 6ypT hsm sjit r o r 6h t toaopxoh jioh HSBTpYY-fi* 6o jiho. 3-3aHnuiaa 6a 4-3aHrHJiaar 13.8 —p 3yparr y3yyjicH33p yjiaaH xoji6oo c 6yxHH xoepTHH m oaoop hji3pxhhjih3. Gepeep X3JI63JI yjiaaH- xap m oahh y^aaH xo ji6oocoop xoji6orAcoH 3aHTHJiaaHyyAHr H3r 3aHnuiaaHA
j E S i j ......
3 y p a r 1 3 . ? . 3 - 6 a 4-paHrnnaaHW ynaansK ap xon O op ci fltypcjian
209
By-ftse 13.
< T r ) < 4 ± R )
3 y p a r 13.5. 2-3-4 m o a o h a (G) aneivieHT opyynax
s x aaHra^aa hb 4-3aHrHJiaa 6o ji moh TyyHH itr 3 a w a x 6a& y ia ap A oopooc 433UI 3aAaJiHa. 0 e p H3r xflJi6ap apra 6o ji 3JieMeHX op yy jia x (opox GaH p iia jib ir xanx) HBuaA TaapaJiAax 4 -3aH m Jiaar 3aAnax 6a iw naap A33P39C A oou iqo 3a^aJiHa. I ta r s c H s s p ajiHBaa 3anrHJiaaHBi 3X 3aHrHJiaa hb 4 -3annm aa 6h u i 6anx § o jiom jk toh 6o jiho .
U Ih h 3 3JieMeHT 4 -3aHrnJiaaH# H3M3rA3X3A 13.6 —p 3ypa rr Y3YYtfC3 f f xoep aaAapraaHBi ajiB h s f h b x m h t o sx 6o jih o .
X3p3B 2-3aHTHJiaaHo; 4-3aHrHJiaa xoji6orACOH 0aiteaji TYYHHiir 3-3aHrHJia3HA £0&p 2-3aHrHJiaa xo ;i6orAcoH Gaiwiaap 3a#aJDK 6o jih o . X3p3B 3~3aHrHAaajHA 4-3aw n i/ iaa xo ji^ q fa coh 6aHBaji TyyHMHr 4-3aHrHJiaaHA xoep 2- 3an rn jia a ^QjiSoF&q^H Sa^w iaap 3aAa/uic 6o jiho . 9 ,ar33p xepBWJi3JiTHHH xaMraftH nyxan o H iv io r 6oji 30BX9H T3p X3C3IT33 3aaapAar. 0op00p x3ji63ji 3a#apraaHH Aapaa
r V f mohhb! 6yca4 x s c s r r oopsLnoJiT opoxryw .
G yyTO iftiff H3r apH m ax 3yft.fi 6o ji yh ac3 h 3aHrn^aa 4-3aHrHJiaa 6o jio x tq x u o a a q a iom, 9 h 3 to x h o jia o jia yh a csh 3aHrHJiaar rypeaH 2^3aurKJiaa 60/irpH rpJiBiH 2-3a;wrHJiaar yhacsh 3aHrHJiaa 6o jifo h o . Y h a c s h 3aHmJiaaHBi 3aAapraaHB? yp AYHA 2 -3 -4 m oaoha H3r tyb u ih h H3M3FA3H3. XaMrHHH coHupxQJiTOH hb 2-3 -4 MOABir 6aftryyjiax 3H3 6y tah h h 3U3c t aManr T3 H W 3pT
CD
3 y p a r 13.6. 4-3aHm naaHA xmmx 3aAapraa
208
T3Ul(63pm Mod
4 - 3 a H r a j i a a r Y Y CC3H 3 C 3 x n t f r t o , h o p x o h ; i o x h o o y r 3 a H rw J ia a H b i (3 Y Y h 6 a
6 a p y y H ) x o e p pp p , 3aH rH J iaa y j ia a H x o j i 6 o o c t o h 6 o j i c o h s c s x H i i r u ia J ira H a .
YjiaaH-Xap MOflOHa IIIHH3 3/ieMeHT H3M3XB33 XOepTblH XaHJITblH MOflHH aflHJiaap opox Sattpjiajiur TOflopxotaoH yjiaaH xoJi6oocToiiroop opyyrwar. XspaB hihh3 3anrMjiaajin ax saHnuiaa xap xoji6 o o c t o h Syroy 2-3aHrmtaa SafiBafl 3-3aHnuiaa yycAar. XspsB sx 3aHrHJiaa y/iaaH xoJi6oocToft 6yioy 3- 33HrHJiaa 6afiBaJi 4-3aHrm iaa yycax 6 o j i o b m yjiaaH-xap m o /i h h xyab/t flapaancan xoep yjiaaH xoji6 o o c yycH3. HhM33c 3AT33p yjiaaH xo;i6oocoop xb^SorflcoH rypBaH 3aHTHJiaar #aH 3pryyA3JiT33p xyBHpraHa. SpryYJis-HTKHH yp flY W MeH 4-3aHrHJiaa yyc3x 6 o j i o b h apaajicaH yjiaaH xojiSoocryft 6 c^i h o .
XapHH niHH3 3JieMeHT Hb 4 -3aHrn/iaanA n sM srflsx Ye# a a pa a ft xoep ToxHo/i/rnur carnaH aB'i y33X xspsrrsii. XspsB 4-3aHrn;iaa Hb 2-3aHiH«aaHbi xyyxaji aaHntaaa 6oji YYH)1 i*r 3-3aHrmiaaH£ xoji6or/icon xoep 2-3aHrmiaa Sootoh 3aflaJiHa. XapsB 4-3aHrHJiaa Hb 3-3aHriwiaaHaac ca/iaaJicaH 6 oji 4- 3aHrHJiaaH,n xoJiSoracoH xoep 2-3aHi'HJiaa fxwiroH aa/utJiHa. 9iir33p 3aflapraar 13.11-p 3ypraap Y3YY;w 33-
3ypar 13.11. 4-3aHranaaHbi aaflapraa
211
xaMaapax 6a yjiaa h xoJi6oocbir aB'j xaHBan sprssA 2-3-4 moa YYc3x kjm. XapHH xap xojiSoocoop 2-3-4 m oahh 3aHraJiaaHyyAHH xoopoiiAMH xo ji6o o cu rHJI3pXHHJ1H3.
YrtaaH-xap m oaht toaopxohjioxoa aurarJiarAax h3M3jit n sr 6h t Hb Tyxaiin )aHrHJiaar 3aax xoji6o o ch h eHraftr HJi3pxHMJiH3. Y jiaaH-xap moa Hb Aapaax oiruJioryyvn'aH Gatiaar. Yh acsh 3aHrMJiaaHaac Hats'! xypax 3aMbiH Aaryy AapaancaH xoep yjiaan xoji6ooc 6aftxryH. G epeep xsjiSsji sx 3aurHJiaaTaiiraa VJiaaH xoji6oocoop xoJi6orAcoH 3anrnjiaa Hb xoep a »A 3aHTHJiaaTaftraa xap xoJi6oocoop xoji6orAOHO. XapHH scpsrssp xap xoJi6oocyyA H3r 3aMHH Aaryy AapaartaH o p * 6ojiho. Hhm sanra/iaa Hb 2-3-4 m oahh 2-3aHrroiaa 6aiiHa. Men yjiaaH-xap moahh (yhacsh 3aHraJiaanaac naB'f xypsx) 6yx 3aMyyA jdkhji to o h h xap xoji6oocbtraryyJiAar. 13.7-p 3yparT y3yyjic3H 2-3-4 MOAbir 13.9 — p 3vparT yjiaaH-xap Moaoop HJispxHHJDiss. TsHUBspT moaoha AaBxarAcaH xyJixYYP sJieMeHT xoep ji3A m ojioha Hb 6aiixb ir 3eBU ieepAer. 3 h 3 Hb spryyjiaaTHiiH yp nyn/i 6hh 6ojiAor.Tyjixyyp sjieMewr AaBTarAax 3csx Hb TyxatiH X3prji33H33c xaMaapAar. XspsB yjiaaH-xap moa AaBTarAcaH 3JieMeHT a ry y jT A a r 6oji xaH/r raap xoepTHH xaiircTHH m oahh aAHJi sxhhh o jiacoh TyjiXYYpuHr Gyriaana. Bhahhh aB i y33x X H in ssrssp TyJixyyp SJieMeHT AaBTarAcaH Monur y3yyji3X Gojtho.
YjiaaH-xap m o a h h for nyxaji OHUJior 6oji xoepTHH xaiiJiTHH moaoha
auiHniacaH s ea rch ( ) cfiyHKUHHr myyA aumrjiax 6ojiomjk iom. YjiaaH-xap MOAwr H3BTpYY->i3XA33 3aHrHJiaa 6ypT hsmsjit Hsr 6h t xaJi6apbir ToziopxoHJioH, xspsB yr 3aH rmiaar 3aax xoji6ooc yjiaaH 6oji 1, xap 6oji 0 tscsh
Uaam iiji6aji opyyjiax yw uum iiu yeA 'i Mam 6ara HeJiee Y3yyjiH3. 3 h s Hb 4- MHrHJTaa toxhojijiboji TyyHHlir 3aAJiax h s m s j it yftjiAJissp HJispAsr. T s b 'I 4- uniniJiaar yycsx 6ypT3aAJiax y ’ fup 4-3aHrHJiaa t h h m 4 3Ji63rTOXHOJiAOXrYH.
210
Eynaz 13
XapHH 4-3aHrHJiaa 3-3aHraJiaaHaae cajiaarcax yeA xmhcsh 3a^apraaHaac 13.12 —p 3yparr jaffgAcsft acyy^ajr yycH 6o/iho. G ep eep xsjiSsji 3aAapraaHbi yp AYHA AapaajicaH yjiaaH xoji6oocyyA rapax T0XH0JWiyyAfcir 6o#o jm ox ecToft.
13.12 —p 3yprH H sx h h h to x h o j ia o j i hb 13.10 —p 3 yp a rr ysYY-flc3** to xh o jia o jitoh a^HJixaH ynn p Aan spryY-^^Tssp x#Ji6apxaH uihh^s^k 6ojiho.13.12 —p 3ypnoiH xoep AaxB toxhojiaojia ; AapaajiaH opcoH yjiaaH xo ji6o o ch h HHrjisji hb e e p yqpaac xoep jjaH spryYJi^nT 6 yK>y AaBxap 3prYYJI3JIT33P UIHHA33C 6 ojih o. E h a AaH 6 o jioh AaBxap 3 prYYJI3JITY Y W iir a v l m oaoha am n rjia x 6aiicaH 6hji33. 13.12 - p 3yparr Y3YYJIC3 H xoep toxho jia jib ih to jih h xyBHpraJiTaap e ep xoep toxh o jiao ji rapq Hp3X 6ojiob4 3apHMHH xyBBA flMapn fljiraaryft iom.
YjiaaH-xap MOABir C ++ nporpaMMqjiajiBiH xsji aiiraniaH h sb tpyyjisx aacjiur yHiHHrn TaHA Y J ip ie . n 3aHrHJiaa 6yxHH yjiaaH-xap m oaoha xhhx xaiiJiTbiH XapBI^yyJiaJIT HB 21ogN+2 —33C X3Tp3XFyH.
m ?
212
Byjiar 14
Hash
XaiiJ iTHr xapbuyyjiajiTbiH TycjiaM acraiiraap ryH iisTrsac 6aiicaH o m h o x
apryyn;aac HJiraaTan h s t apra 6oji hash xanrjia jiT io m . 3 h s xaHJiTUH apra Hb
ty jixyyp yrraHA apH(J)MeTHK yHJiAJi33p xyBHprajiT x h h h ererz ie ji 6aw pjiax
XYCH3 ITHHH xaaraH r rapraH aB4 myyA xaHAAar.
XspsB 6HA3HA n niHpxsr HJiraaTaii Tyjixyyp yrryyA 1 —33c n —h h h xoopoha ererABOJi k yrraTaH tyjixyyphhh ererAJiHiir MaccHBbiH k ayraap 3JieMeHT33c myyA aBax 6o jio m x to h 6aftnar. Tsrasji hash xaarjiaji Hb ty jix y y p h h h yrra TOAOpXOH 6HUI, epeHXHH TOXHOJIAOJIA SHHIHH 3H3 apra A33p YHA3CJI3rAA3r.
Hash xaflmaJibiH TycjiaMXTaiiraap xh h x xanjiTbm sxhhh ajixaM 6o ji xaiix ty jixyyph hh y iTb ir xych 3 I th h h xaar pyy xyBHprax yhaasji iom. 9 h 3 yhjtasji Hb h a s h ( f r y H K U p a p XHHrAA3r. 3apHMblH xyBbA, hash (JjyHKU Hb AJiraaTaH Tyjixyyp GypHHr HJiraaTan xa a rr xyBHprax ecToii 6ojiobh H H rsx 6yp3H Tore to a o p x o h a o x h a s h <J)yHKU 6aHAarrYH- M h m 33 c xoep 6a t y y h s s c o jio h
HJiraaraH ty jixyyp YYA xy ch s ith h h idkmji xaaraap TOAopxoHJiorAox to x h o jia o ji rapAar. Hhm tyjixyyPYYAHHH 3epnjiuua 3oxuu,yyjiox yh jias ji Hb xaHJiTHH x o ep
Aaxb ajixaM 6oJWor 6a YYHHHr acarcaajrr amnrjiaH 30XHiiyyjDK 6ojiAor. 3 h s apra Hb xsash ty jix yyp rapq H psxnnr ypbA^HJiaH M3A3xryH to xh o jiao jia AHHaMHKaap 3oxHii;yyjiaxaA h jiyy toxhpom^ktoh iom. Y y h s s c raAHa M acciiB
ainnrJiaH ihh hasx 3apHM apryyA 6aiiAar.
Hash x a a rjia jib ir xyrauaa 6a 3a ii x s m h s c s h c a to }k h ii i33h h h H3r t3>k x s jix 6ojiho . Xsp3B caHax o h h XH3raapjiajrr 6aHxryH 6 oji tyjixyyp yrraH A caHax o h h xaarHHr auinrJiacHaap caHax o h p y y 3obxoh H 3 r yaaarHHH xaHAaJiTaap xaHJiTbir ryHH3Tr3x 6ojiho . X spsB xyra ijaaH b i xjroraapjia jnTYft 6oji xyP3JHJ33T xaMrHHH 6a ra caHax o h h xyBbA 3HrHHH AapaajiaH xan x a p rb ir am nrjia^K 6ojiho . TsrB3Ji hash xa a rjia ji Hb 3H3 xoep TyHJiur tsh u yy^ s h xyrauaa 6a 3a iir yxaa jiraap a iim rjiaA a r.
213
Eyim 14
Hash xaaniajiT h l ojioh fljiraaTafi anropHTMyyAHH xyBbzt rYrera ft cyzuiarAcaH, xap3rJi33HA Mam epreH aiunrJiarAHar KOMHbioTepHHH coHroAor 6o;iJiorbiHH3T IOM.
H ash (JiynKH
Sxhh h ajixaMA TyJixyypHHf xycHsrrHHH xaar pyy xyBHprax hasii 4>yHKii; toaopxohjiox ecToft. 3h3 npouecc Hb caHaMcapryft to o yycrsxTsfl to c tsh ap<J)HMeTHK YHJIA3JI IOM. 0ep06p X3JT63JI K TyJIXYYPHHH OJIOHJIOrbir [ 0 , M- l ] racsH (m xycH3rTHHH X3MX33) My*HMH xoopoHflox 6yx3Ji TOOHyyA pyy xyBHprax H: K -> M 4>yHKUHHr TOAOPXOHJIOX SOJIHO.
h 4>yHKHHHr TOAOpxolijroxoA xo ep y h a csh Luajiryypbir 6 apMMTJiax inaapzyiaraTait. YyhhH sxhhh maapzuiara Hb h 4>yHKH Mam xypnaH, xaJiGap 6aflx ecTOH. Xoep Aaxb uiaapAflara Hb h (J>yHKH3 3p xascrjiarflax TyjixyYPYYA xaMrniiH 6ara aepm urrsHrasp x y ch s tth h h m 6aiipjiajiA TapxcaH 6 aMx inaapuJiaraTafl. T s b i 6o a h t Oafi/iaji A33P TYJixyypYYA 6ojioh xaflryyAbir ypbjiHH/iasi MsflsxrYH toxh o jiao jia xoep jiaxb m aap fljiarar Terc xa n rax Ha/uiairyH.
3 m 6H/i, 3apHM TYT3 3M3JI amnrjiarAHar h ash (jjyHKUYYAHHr d a m y3be. Yyha:
Xyaaax apra. Tyjixyyphhh to o n —sac hx m to o t coh ioho . XaHniajiHH 3ep>i- jiH iir 6aracraxuH xyjiA m Hb aHXHH to o 6attx maapAJiaraTaH. 3ha33C h (JjyHKHHflr
H (k) = k (mod M)
rsaKToflopxoHJiAor. XspsB Tyjixyyp Hb to o h yTraap ereraceH 6oji h (JiynKuafl myyn amHrJiaHa. XapHH Tyjixyyp hi> tsm a s it M epeep ererflBOJi TyyHHftr 3XJi33fl to o h yTraap m ispxH itox maapAJiaraTaft. }Khiii33Ji63Ji xychs ith hh X3M2C33 Hb 101 F3XC ererACOH T3B3JI AOpBBH T3MA3TT33C TOfTOX A K E Y tyjixyyphhh xycHsrrHHH xaarattr TOAopxoHJibe. XspsB TyJixyYP'r opojm ox TSMAsrTYYAHftr TaBan 6h t (11 —p SyJiniHH cyypnap spsMfisjisx aprnr y3) XoepTbiH TOOJIJIHH TOOTOOp HJI3pXHHJIB3JI
00001010110010111001
rscsH Shthhh HyBaa yycsx 6a apaBTHH tooju ihh 44217 tscsh to o to h tshhyy mm. Xspaii tyjixyyphhh yrrbir 32 cyypbTaii too ju ih h chctsm a hjispxhhjiQsji a k e y 6yioy 44217 tscsh yrra Hb
1*323 + 11*32J + 5*32* + 25*32°
214
Hash
raac 6HHHr,a3H3. 0 e p e e p x3ji63ji 5 6HT33p To.aopxoHJiorAcoH ycrYYflHHH 5KarcaajiTMH sxhh h TSMflsrr Hb a , apBaH Hsr fl3X t s m a s it Hb k rex M3T33pTOAOpXOHJIOrflOHO.
Tsrasji Tyjixyyp Hb ypr t s m a s it M ep eep ererjisx to x h o jia o jia h <t>yHKH xspxsH to o h o jio x B3 reasr acyynaJi r a p i h ph s . )K hu i33 ji63 ji v e r y l o n g k e y tyjixyyp hb
T3TB3JI3H3 TOXHOJIAOJIA m o d <J)yHKUHHH OHiyior HaHap 6a H o r n e r - H H H aprb ir auiHrjiaH ty jix y y P h h t xscsr X3cr33p xyBHprax 3aMaap x y c h s ith h h xaarH fir Toaopxoftjuu ior. 9 h 3 apra Hb ty jix y yp h h h xapraraax y r r a r TOAopxoitncoH A33pX HJI3pXHHJIJIHHH SUiraaTaft 6H1JI3rHHH X3Jl63p A3 3 p YHA3CJI3A3T. >KhIU33Ji63JI 6HAHHH fl33px HJlapXHHJMHHT
3H 3 6HHJI3rHltH X3Jl6sp Hb Hash 4>yHKH33p XYCH3TTHHH XaHTHHT to a op x o h jio x Toouoojijibir xjui6apmyyjiAar. 3 h a T3MA3it Mepoop orerAcen TYJIXYYPHfiH hash XaHTHftr TOflOpXOftjIOX (J)yHKI|HHH KOAbir Y3YYJHI33.
Tyjixyyp Hb XHMH33H ypT T3Mfl3iT Mep 6aMcan 4 % yiiJiASJi Hb m — 33c 6ara yrra rapraHa. m =ioi y e a jisspx h ash () 4>yHKH Hb v e r y l o n g k e y tyjixyyphhh XYCH3iT3fl 6aiipjiax xaaritiir 97 r s x rapraHa.
Hyrajiax apra. k TYJixYYPHftr kj, k2, k3, ... , kc rscsH xscryyffM xyBaaHa. Xscar (c'\ryJitratiHX33c 6vcan) fjypiiHH opoHrnftH t o o Hb xaarr maapaaraax opoHraftH t o o t o h h>khji 6aftHa. YyHHft aapaa xscryyOTiHr xoopona Hb H3M3X 6a OpOH X3T3PB3JI TYYHHftr OpXHHO. H (JjyHKU Hb
H(k! .= k, + k, + k3 + ... + k t
r s x To/iopxoii^or/iiior. 3apnM toxhojiaojia Tsrrn HHaexcTsft xscrnftH UHcJjpYYflwiir ypByyraap 6aftpjivyjiaH HSMasr. >Knui33Ji63Ji xycHsrr Hb 100 sjieweHT aryyjraar tsbsji x yc h s tth h h 6aftpjiaji Hb 00, 01, ... , 99 rsac JiyraapjiarflaHa. 9 hs toxhojiiioji,ii aepBen opoHrooc Torrox TYJixYYPYYAHftn x yc h sith h h xaarHftr aapaax 6aftjyiaap ToaopxoftjiHo.
xyBBfl H5KHJI 6aftx xaparreH. >Kh iii33ji63JI Hyrajiax apraap aBH Y3C3H aouuss TyjixyypYYAh h h xyBbfl:
k 3205 7148 2345k* 10272025 51093904 5499025
H (k ) 72 93 99
T3K XYCH3ITHftH XaOTHftr TOflOpXOHJIHO. ,fl,33px XHIH33HHH XyBbA X3HIT auiHrJiarAax opoHryyn hb KBaapaT 33psr asbhiyy^csh y r r n r 6apyyH Tanaac AepeB 6a TaB,nyraap opoHryyn 6aHHa.
XaarHHn 3epqjiHHr 30xnuyyjiax apryya
9 h 3 x s c s r r TYJXYYPHfir f ls sp x 4>yHKUYYA33P XYCH3ITHHH xaa r p yy xyBHprax ye^ h jkh ji xaaraap TOflopxoHJioracoH TYJixyypyyflHHr 3oxHHyyjiax acyyaaji apnrflaH a. XaM rHHH 3H r«H H ap ra 6 oji xycHsrTHHH x aa r 6 yp r acarcaajrr auiHTJiax 6a y r xaaraap TOflopxoHJiorflox TyJiXYYPHHr aryyjiax 6 o j i h o . G e p e e p X3ji6sji m X3MJK33T3H xycHsrTHHH xyBbfl m cajiaHraw 3carcaajiT aum rjiaraax IOM.
X h UI33JI63JI A S E A R C H I N G E X A M P L E T3C3H H3r T3Mfl3IT33C TOITOX
TYJixYYPYYA H t 14.1 —p 3yparT ysYY-HCH33? xaaraaracaH r3B3.ii YYC3x xarcaamryynbir 14.2 —p 3ypraap Y3YYJIJI33- 3 h s a p ra r cam m ud zuhokuh apra rsac H3pji3fl3r . Yhhp Hb hjkhji xaarr OHorflcoH ererjyiYYA cajiaHrnw xarcaaji- TyyMH nuDicnarflSH xoji6or,mior.
hash: 1 8 5 1 7 3 8 9 3 7 5 2 1 2 5 1 5
3ypar 14.1. Hash tpyHKij (M=11)
)Karcaajrrafl xaflrajiarflax TyJiXYYPYYA hb HMap Hsr flapaanuiaap 3psM63Ji3r,H3X 6ojiox 6ojiob'1 6hahhh x h w s s h h h xyBbji acarcaairr 6orHHO y ro p opcoH Jiapaajuiaapaa xanrajiaraax sh th hh Aapaa/raH xaiix ap ra r auiHDiax 6ojiho. 9h3 apraap xhhx xaiiJiTBiH xyrauaa hb JKarcaajiTBiH ypiaac xaMaapax hb H/i3pxHH iom. Gepeep X3ji63ji xanjrr hb h (JjyHKUHilH TycjiaMXTaflrraap TyxaHH tyjixyyphhh 6aftpjiax xarcaajrrafl iuyya xypsx 5a aapaa hb yr tyjixyyphht TyxafiH xarcaairraac xaima.
XaftJiT “ aMjKHJiTryii” 6 o j i o x (xaftac 6 y ii TYJixYYP'raH ere rn e ji xycH srrsfl 6aftxryH 6attx ) y eA m a jira ra a x xcarcaaJiTBiH n yH n a x ypT hb
(0 + 4 + 2 + 2 + 0 + 4 + 0 + 2 + 2 + l-f0 )/l I & 1.55 6 aMHa. X sp sn 3p 3 M6 3Ji3 r,ac3 H
xarcaaJTT aum rjiaBaji 3H3 xyrau aar xaracjiaH Saracra^c 6 o jih o . XapHH “ aMJKHJiTTaw” to x h o j ia o j ia xanac 6yh ty j ix y y p Hb m xarcaajiTbiH ajib H3r 6aHpJiaJin 6apix 6a xarcaaJiTbiH s x h h h 6 aHp;iajm; 6anx a o jio o h TyJixyYP Hb H 3f yftaarHHH xapbiiyyjiajrraap, xoep ^axb 6aHpjiajm 6anx 3ypraaH Tyjixyyp Hb x o e p v iiaarH H H x a p b ijy y jia jrra a p , r s x m s t^ h jis h AyH/jaacaap
(7*l+6*2+2*3+2*4)/17 H 1.94 xapbuyyjiajrraap e re r£ e ji o jw o h o .
Fhh^khh apra Hb sh th h h aapaajiaH xanx apraap xhm tasx xapbuyyjiajiTbiH Toor m K034>4)HiiMeHT33p 6aracraiiar.
XanrHHH 3#j9*uihht 30xHiiyyJiax napaaMHHH aprbir m anm m au xam jiajim b iH apra rsn sr. Xsp3B k xyjixyypTSH erer/iJiHHT H ( k ) = h <J>yHKit33p xaflrcrar Hb TOAOpxotoOH xycH3TT3ii opyyjiax (moh xycH3iT33c xanx) ye# h (xaar) 6anpjiaji ajib X3J3HHH eep ererzieJTA 33Ji3r^c3 H 6aHBaji h 6anpjiajiaac xohiu xaM raira 3X3HA Taapajinax cyn 6aHpjiajm opyyjmar.
H 33j i t t 3H xaarJiajirbiH xaMrHHH 3HrHHH aprw r uiyeaMan mandax apra T3H3 . 9 h 3 apra Hb x y ch s ith h h xaarHHH 3epw rc rapcaH 6aHpjiajibiH AapaaHHHH 6aHpjiajibiH TYJIXYYPT3H xapbiiyy^aH TaH,iwar. 0 e p e e p X3Ji63Ji x a H jn w xycH3iTHHH h, h + l , h+2, ... 6aHpJiaJiyyn;aac uiyraMaH xaHJiTaap ryiiusTrsAsr. 3 h 3 ye# ziapaax rypBaH toxh o ji^ o ji rapax 6ojih o. Xsp3B Aapaa^Hira 6aiipjiaji Aaxb ty jixyyp xai-DK 6yn TyjixyypTSH ajjMJi 6oji x a t a r aMJKHJirraH 6ojiho. Xsp3B Aapaa^HHH 6aiipjiaji Hb xoocoh 6oji xaifrrr arocHJiTiyH 6ojih o. XspsB Asspx xoep HoxiyiHHH ajib Hb ii 6Heji3xryH (xaibK 6y ii TYJixyypssc eep Tyjixyyp Aapaa^HHH 6aHpJiaji# 6aHBaji) 6oji TaHziajiTbir jjapaaHHMH sjieM eH Tyy^A £3C napaajiaH xhhxh33 xoocoh 6aftpjiaji rapTaji 3CB3JI xatoc 6yft Tyjixyyp o jia to ji
ryH ii3Tr3A 3r.
218
Hash
XspsB xaioc 6anraa tyjixyyptsh erer#J iM r xycH3fT3n opyyjiax 6 o ji xa to r aivoKHJiTTYH 6ojicoh 40J100T3H 6 anpjiaJiA opyyjiHa.
X ycH a n H H H X3M X 33 hi> m=19 SanxaA 6h a h h h XMIU33 ty jjx y yp y ya h m h xaar14.3 —p 3ypan y3YY^H33p to a o p x o h j io t a c o h rs x y 3i>e.
KoMniiioTepHiiH ro ji xapsnresHHH Har 6 oji xeKcx m s a s s j i s j i Sojioucpyyjiax
CHCTeM k m . H t i M TepJMHH ciicTeM YYfl T3MA3rT, nM({)p 6 o j i o h Tycraii T3Mfl3rTYYfl33c T orrox erer/uiWHr SojioBcpyyjiaar. KoMiihioTepHHH H3p TOMl.eOJIOJWT3Mfl3rTYYflHHH HHMflapaaililbU “ Yr” T3X33C HJIYY ni3Md3Zm Mep rsacxaparasflsr. Y r a p hb KOMnBKJTepHHH xspsrjresim reixT m s s s sjisji rsflsr oftjiroJiT hb HJiyy epreH xypssTsftresp X3parji3rjupr. G epeep X3ji6sji recKT M3A33JI3JI SoJioBcpyyjiax chctcm a xyh TepejixTHHii xs jk yh h yr xsjinsraiir 6oJioBcpyyjiax cHcreMaac rajtwa 3apHM eep t q p j i h h h t s m a s i t MSflssjiJiHiir
60Ji0BcpyyJiax c h c tc m y y a xaM aap^ar. T y x a iijiS a ji KOMnbioTepHHH nporpaMMUiajibiH xsjiflssp 6m4Hitic3H nporpaMMHH sx Konur SojioBcpyyjiax KOMriHJiflTopyyfl Q o j i o h Msflssjufflftr k o o t h j i o h maxaac 3a/triax xspsrcjiYYOTHrX3JDK 60JIH0.
HX3HX nporpaMMMJiaJiUH xbjisha ts m a s it MepHHr yhacsh ererflJiHiiH Tepeji 6o jito h TQJiopxoHJicoH 6aHflar. XapHH C/C++ xsMyiaaffl T3MH3rr M epniir T epeji 6o jito h TO/iopxoiijioorYii i null xsM flsrrssp T ercex TSM flsm iiiH B eK Topoop T3Mfl3rT M ep n ttr TonopxoH Jiflor. M H racH ssp nporpaM M 30XH0rH00c nporpaMMHJiajiHH h jiyy YP i£WBap, aaoHJiJiaraa uuaapjiax xaxwk q T3Mfl3nr MepHiir Maui ysm xaTaH, YP auiHrraiiraap 3oxhoh 6aHryyjwar. T yyhh jish C/C++ X3JIYYA Hb T3M53IT Mepa ajtcHJiJiax (xapbuyyjiax, hmm/iyyjmx, x ac iH H r cajiraH aBax, ypTbir to a o p x o h jio x rax m s t) o jioh 4>yHKU33p xaHraracaH 6aitnar. IJaauiHJiSaJi C++ xsjihhh xyBbji o 6teKT xaimajixax apraap erer;yiHHH xhhcbsp Tepeji YYcr3CH33P tsm a s it Mepa aauuuiax c^yHKnyyjissp xaHrarflcaH xaparjiariH H H Tepeji To/iopxoiijiox 6o jiom x toh . TyxaiiJi6aJi 30XH0rliHHH “ OSieicrxaHAaJiTaTnporpaMMijiaji C++” hom hh 18—p 6yJir33p TOflOpXOHJICOH String KJiaccur XapJK SOJIOX IOM.
9 h 3 HOMOOP 6hA C++ X3JI3H4 T3MH3IT MepHHr X3pX3H TOJIOpXOHJIJIOr Tyxafi flaBTaH Y33xrYii- XapHH 3H3 h o m h h to ji 3opHJiro Hb TSMflarT Mepji SojioBcpyyjiaJiT xhhx 3apHM yHflcsH yh jw sji 6ojioh ajiropnTMyynur cyanax iom. Hhm ajiropHTMA
221
E\aaz 14
racaH 6aHpjiajiyyna,n ry iiH 3T r3,H3 r. Xoep flaxb h ash <J>yHKUHHr Main
SojirooMScrott coh tox xspsrreli. h'?*o 6a jy it if 6afix inaapAJiaraTaH. h ( k) 6a
<t*yHKUHHH 3 X H H H apryMeHT pat h b xattx T3M#3r M e p 6a xoep aaxb apryMeHT
te x t Hb TeKCT M3A33JI3JI 6aftHa.
in t n a ivesearch (ch ar *p a t, char * t e x t ) (in t i , j , m = s t r le n (p a t ) , n = s t r l e n ( t e x t ) ; fo r (i= Q , j**0; j<m SS i<n ; i+ + , j+ + )
(pyHKLisa T3MA3IT M e p u ryiix j 3aars[ 6a reKCT M3fl33.H3.nn ryiix i 3aariHHr a m m n a n xaprajmx TSMaarryyflHiir xapbiiyyjiaH m c v u i toxhojihojk xoep 3aara
xoeyji Hsreap 33p3r H3M3TO3H3. X s p s B xapbuyymnTaap hxhji 6hui 6oji j
3aanHiir 6yinaaH tsmasit M e p H H H 3XH33C sxnyynsx 6a xapHH i 3aar'iHHr TeKCT M3fl33JDI33C T3Mfl3IT M e p H H r XaftjK 3X3JIC3H TypyyTOHH 6aftpjianbiH
xaiiiiT aMjKHJiTTaii 6ojiox 6eree,a; p a t T3Mfl3rr M e p t e x t tckcthhh i-m 6aHpjiaiiaac sxnaH 6aitpjiana. Xaiijrr aMauuiTryH 6ojicoh toxmoji/iojm (i==n ) H0XH9JI 6weji3x 6yioy tckcthhh Tercrejm xypcsH 6atea.
6aft;yiaap xaHflcaH. T stbsji aapaax (JjyHKUssp aaarn auiHTJian xspxsH
H3BTpYY>X3XHiir XapbH. 9flT33p xoep (}>yHKH H b 6 n ,UI3rYY/tHHH X3Jl6sp33C eep
HMa p i HJiraa 6a0xryit
.char *n a iv e se a rc h l(ch a r *p a t, char * t e x t ) ( r e g is t e r char *bp, *sp; i f ( ! * p a t ) re tu rn t e x t ; w h ile ( * t e x t ) {
bp «* t e x t ; sp = p a t; do (
i f ( !* s p ) re tu rn t e x t ; e ls e i f ( ! * b p ) re tu rn 0;
} w h ile (*bp++ PS *sp++ ); te x t += 1;
}return 0;
223
Eynaz 15
(1 ) T3\tsprr M ep xattx sHrniiH xa ttjrm H aJiropHTM. 9 h s aJiropHTM h b tc k c t peaaKTopT ( m 6h M3fl33ji3j xattx 6ycaa SHriittH xaparcjiyy fla fl) e re rA ce n T3MA3IT M epnttr TeKCT M3fl33JW33c xattxaA ep reH auiHnrarEwar.
(2) 3araapaap TaMflarT M e p xattx ajiropnTM. 9 h s ajiropHTMBir TaAopxoft
(5) KoflTOJioJi6yioyHyynnajiraHaJiropHTM. 9 n s h b M3fl33jumte HyyiwanT
aioyjirytt 6attflAHH ye#, HJiaHryna cyjixasHntt o p i H H A m s a s s a s a
flaMacyyjiax yea apHTflnar.
9jir33p ajiropHTMyyAtir cyflaJicHaap o a o o auiHniarAax Sattraa (maxax/
3afljiax, nyynJiax r.M) xspsrcJiyyflHHH aaauuiax 3apiMBn o h j i t o x, m s h eepnttH
nporpaMMUiariBiH yp HaABapbir assiiijiyyji3H SAreap anropnTMBir t o x h p o x
H exueJiA aiuwrjiajK cypax, uaauiHJi6aji t s m a s i t M e p A SojioBcpyyjiaJiT x h h x
eepnttH unyy cattH anropHTMHr rapraH aBax 6 o j i o m5k t o h 6 ojiox i o m .
TsM flarT Mep x a iix
B h a h h i i e H e e A p H H H O A e p r y x a M A aumrjiarAajK 6attraa n p o r p a M M
x a H r a M x y y A a A t s m a s t t M e p xattx aJiropHTM h b Maui 'iyxaji yypsrrett.
Tyxattji6aji, t c k c t peAAKTopT aiaajiarAcan M a m t o m t c k c t M sassjijissc
TOflopxott Har T3MA3IT M e p xattxaA amnrjiarAAar 6oji eep x3psrji33HA t s m a s i t
M ep xapBnyyAax HJryy TeBerrstt aJiropHTM maapflJiaraTatt 6attAar. Unix yttJiAAHflH cncTeMHttH xoep TeKCT 4>aftji xapBijyyjiax dif f KOMaHfl h b yyHHtt
H3T 5KMIH33 IOM.
3 a p n M t o x h o j i a o j i a xoepraH (0 6a 1 —HttH Aapaajiaji) t s m a s t t M e p xattx
maapfljiara rapAar. )Khiii33Ji63ji “pbm” rpa^HtcnttH 4>attJiBiH <J)opMaT h b 0 6a
1 —h h h Aapaajuiaap TOAopxottjiorAAor 6a HttM 4>opMaTaap T0A0px0ttJi0rAC0H
3ypraac xaMrattH nx x o o c o h 3ypBacnr ojiox maapAJiara rap'i npA3r.
H a r TaAaac x o e p r a H T3MA3rr M e p h b 3eBxeH 0 6a 1 TSMAarryyASSC
TorTAoroopoo TeKCT tsmasit Mep e e c HAraaxatt 6oji, Heree xajiaac 8 6nr33p
HAspxHttnsrAflsr 6ojiom*oopoo hjkhji laHapTatt. G e p e e p X3ji6sji tc k c t T3MA3ITHttr 8 6HT33P HA3pXHttA3X 3CB3JI XOepTBIH T3MA3IT MepHttT 8 6HT
3apHM X3p3rji33, TyxaHJi6aji t c k c t peAaKTopbiH xyBbA 3H3 ajiropHTMHH a o to o a AaBTaJITblH ajixMMH to o Hb Main ixeexeH XHHiwpr. 3 xh h h (J)yHKHHHH xyBbA a o to o a AaBTajiT Hb j xyBbcarHHHH yrra —1 s c b s ji m 6 o jio x xypT3Ji XHHTA3X 6a yyhhh Aapaa i xyBbcarHHHH yrra ( i -= j ) 6a (i+ + ) yh jw iy y iih h h xaMTaap eepq jierA ceH eep raAaaA AaBTajiT H3r ajixaM xhkta3H3. XapHH xoep Aaxb 4>yHKUHHH raAaaA 6a a o to o a AaBTajrr Hb xoep jmraaTaH whi le AaBTajrraap HJispxHH xaparAa^c 6aHHa. JXotoojx AaBTajrr Hb xatoc 6anraa T3MA3FT MepT3H T0CT3H T3MA3ITYYAHHH uyBaa TaapajiAaxaac 6ycaA yeA Mam u eexeH ajixaM XHHA3T. >KhL1I33JI63JI RING T3A3T T3MA3IT MOpHHr AapaaX TCKCT33C X3HH.
ALGORITHMS FOR STRING SEARCHING . . .
9 h 3 toxhojiaojia ao to oa AaBTaJITblH j ++ (*sp++) yhjiasji rypBaH yAaa XHHr-A3X33C xoep Hb ALGORITHMS yTHHH RI —A XHHTA3H3.
XapHH 3H3 aJiropHTM Hb 3apHM to x h o jia o j ia Mam yAaaH aacHJiJiaAar. T yxa im 6aji xoepTbiH t3MA3IT MepHHr am nm ax chctcm hhh nporpaMMHJiaJi 6ojioh rpa(j)HK 6ojioBcpyyjiax nporpaMM xaHrawDKHHH xspsrcjiyyASA apnrAax iom. >Khhi33ji63ji 15.1 —p 3ypraap 1 0 1 0 0 1 I rscsH T3MA3rTyyAHHr xoepTHH 100101001010011001 TCKCT33C XaHX YHJIAJIHHr Y3YYJUI33. 3yprHHH XaMrHHH sxh hh Mop Hb TecKT 6a yAaax Mop 6yp Hb raAaaA AaBTajiTbir h jispxhhjihs.
1 0 0 1 0 1 0 0 1 0 1 0 0 1 11 o | f t j H P 1 1
[ l o i * o 0 1 1
00 1 0 0 1 1
1 0 1 0 0 1 E lm d 1 , 0 oo0o
;q 1 s
U S 0 P f n
§ p ;H I 0 0 w SSS1 0 0 1 0 1 0 0 1 1
l °1 0 0 1 1
0 0 1
0 0 1
3ypar15.1. XaMiiTbiH 3HrnMH apra
224
T3Md3Ztn Mop
MepAOTpoo u.araaHaap SyAarAcaH T3MA3rcYYA33p a o too a AaBTaJiTbiH anxMtir HJI3pXHHJI3X 6a XYP33T3H CaapaJI T3MA3IT A33p XaHJiT aNCKHJITryii 60JICHbIT HJT3pXMHJIH3.
Sypraac xapaxaA A o tooa AaBTajiT Hb 3apHM MepeHA o n XHHrA33ryH 6awxaA 3apHM MepeHA H3r, xoep, 3ypraaH yAaa xypxsji xhhtacsh h l xaparAaxc 6a ta a . 3h 3 JKUIH33HHH xyBbA a o to o a AaBTajiT Hb Ay*TOKaap 1 —2 yAaa XHiirA5K33.r3B*I 1 1 1 1 1 1 0 T3MA3IT MepHlfr
1111111111111111111111 J f l l l l l l l l l l l l l l l l l l l l O
9 h 3 ajiropHTMaap n yprraH tckctssc m yprraH T3MA3IT MepHHr xaiixaA (xaMrHHH h x a s s ) oH p o jm o oroop o(nm) xapbuyyjiajiT (T3MA3rTYYAHftH xoopoHA) XHHTA3H3.
rax M3TTOJI3H 6yx 6aftpflaJiuH xyBbA xapbuyyjiajiT xHitflar. T 3rB3.ii xawrHftH 3XHHii xapbuyyjia jiTaap 11111 recsH t s m a s it M ep tckcthjih s x h h h 0 T3Mfl3rr33C 8MHG 6aftx HMapn CoJioM xryft Hb x a p a r^ a x Saifcia. 9 hs TOXHOJWOJifl xaftjiTbir aapaax 6attwiaap xwibK 6o/iho .
11110111101111100111111
11110111101111100111111
111101111011111001
11111
G ep eep x3j163.11 xapb iiyy jia rr a wap T3Mfl3iTHHH xyBbA xaaHa aMHCHJiTTyii SoflcoH T3p 6aftpjianaac Aapaa'miiH xapbuyyjia irm r 3X34* 6aflHa. Mhm33c raAaaa AaBxairr i Hb Syijaac TeKcraiiH aapaaiHHH Sattpjrajifl o «ihx aMapn niaapAJiararyli iom. Tsbh 3H3 apra Hb 36BX6H «3 3 p x x h ii is s h h h xyBbA toxh ph o . Taraa ji e e p 5khui33hhh xyBbA sh s apra Hb xspxsxn ttr xapuraaa. Tyxaiu i6aii 1011011001101011 racsH tck c tss c 101100 ts m a s it MepHftr 9H3 apraap xafta.
1011011001101011101100
1011011001101011101100
3 h 3 )kh iii33hhh xyBbA 3Xhhh xapbuyyjiajiT ts m a s it MepMHH xaM raiiH
cyyjihhhh T3MA3rTHliH xyBbA aMXHJiTrytt 6o ;ic o h yinp AapaaHHftH
226
T:md3em Mep
xaptuyyjiaiiTt c k c t h h h a o j i o o flaxb 6aftpmrcaac s x s j d k 6aiiHa. F s b ii TeKCTHHH
flojioo flaxb 6aiip;[ajiaac e M H e T3Mfl3r M e p 6aii>K 6 o j i o x 6 o ^ o M * y y / i M r
majirajirytt o p x m K 6aftHa. TyxaiiH 6aji TeKcraiiH 3 6a 4 flsx T3Mfl3rr Ht T3Mfl3rr M O p H H H 3 X H H H T3Mfl3rTT3li H5KHJI 6ereefl 6HflHHH XaHJK 6aiiraa T3Mfl3rr
MepHlir TSflraap Baiip/rajm 6aitxrYH raflrafir 6aTTaii M3fl3xryii y n n p Taarsap
6aiipJKUibir inajirax uiaapflJiaraTaH. Y H 3 X 3 3 p q 3 H 3 x h u i s s h m h xyBbfl xaiix
6 a HcaH T3Mfl3rr M e p T e K C T H H H 4 flax 6afipaa»aac s x j i s h 6aiipjiaxc 6aiiHa.
• ibiioiiooiioion 1 0 1 1 0 0
1011011001101011101100
M h m 33c xapbuyyjiajiT aMxcmrrrYH 6 o jic o h Toxnojiflojifl flapaaqHHH xaaurr
axJisx Baftpjxanbir 3o b T o flo p x o ft jio x Hb Maui qyx&ri 6 e r e e f l km p a jiropH TM 3H3
3ap iH M fl A 33p asKHJUiaflar. X h u i33ji63/[ flapaax a o n iis a r xapuraaH .
xap b ixyy jraJ iT a M x m n r y H 6ojicoh r s a r s s c x a M a a p y f la p a a n i i i iH x a p b u y y jia x
T3 M fl3 rT H H H 6 a i ip j ia j ib ir T S M fla r r M e p H e e c T o a o p x o m D K 6 a iiH a .
k m p xaft/iTbtH ajiropHTMfl raflaaa i flaBTaiiT Hb HMarT (i++) yii/iflJi33p H3M3rfl3JK flBaX 6a n a i v e s e a r c h o C^yHKHHHH aflHJI (i-=j ) 6yuax yitllflSJI X3333 ' I xnftrfl3xryH. X s p a B xapbiiyyjxaJiT aMJKHiiTTaH 6 o j i yea i 6a j flaBTairryyfl 33psr H3M3rfl3x 6a xapHH xapbuyyjiajiT aMaowTryii 6 oji 3eBxeH j eep 'M erfleH T3Mfl3rr MepwiiH xapbuyyjiajiT x h h x sxJiax T3Mfl3rTniir TOAopxoiuiflor. .Hapaax cJiyHKipap k m p xaiijiTbiH ajiropHTMbir Y3yyji^33.
227
Eywae 15
int; kmpsearctt (char *pat, c har * t e x t ) (
in t i , j , m '= s t r le n (p a t ) , n = s t r l e n ( t e x t ) ; in t *next f^new in t [m] ; in itn e x t (pa t, next, m );!f 0r(is=0, j=0; j <m ss i<n; i++, j++)
wtliii6( ( j> “ 0;) & & ! i( t e x t E i I •»«■> p a t f j ) ) ) j = n e x t l j l ; i f ( j == m) retu rn i-m ; e ls e retu rn i ;
} >.M!H ■ \k< it' .■•Ki!/:.:
9 h 3 cJ)yHKU3fl xapbuyyJiaJ iT xaaH a aMacHJiTryft 6o j ic h o o c xaM aa p q xaphuyyjia jir xaaHaac sxJisxHtir xycjiax MaccHB ainHraaH u im n sy n 6a to a . T yc jia x MaccHBHH y r r t i r initnext () <J>yHKUHHH TycjiaM>KTaftraap o jito h o . T y c jia x MaccHB Hb tb m / is it MepwitH ypTTaft a jm n x sm jksstsh 3apjiaraax 6eree/i, xapra-agax tbm /isityy/ i flsa p xap b iiyy jiaaT a M X iM T ry ii S o jio x o a ihhjdkhx Saiipjiaijiyyflbir x a a ra jr* 6aftaar. /Khui33Ji63;i 16.1 —p 3yparraBcaHdhar +pat = 'i 1010011" T3MJX3IT M e p H H H xyBb,H Tycjiax next M a c c H B H H
VTrbir jioop Y3YYJIJI33.
} ' • 0 I 9 6p a t [ j ] 1 0 1 0 0 1 1
n e x t [j } - 1 0 0 1 2 0 1
^Kh 1H33JIC)3J? XaHX T3MA3IT M ep Hb *pat = "1111011" Yefl TYYHHH next MaccHBHH ym >iv f loo p y3YYJIJ133-
j 1' J ' ■v b * f r l r j 4 5 6
patl j] g : r 1 3 1 1 0 1 1
next[j j -1 0 1 2 3 0 1
T3MiT3rr MepHHH xaMTHHH 3XHHH 3JieMeHT fl33p Xapbl(yyJiaJXr aMJKHJIITYH OOJTOX TOXHOJUtOJIfl i Hb HMaiT TCKCTHHH AapaalXHHH H3T 6aftpjiajm HIHJDKHXG ereea j Hb T3M,x3miHH sxjisjm 6aftx ecToii. n ex t [0 ] a jieM eH TH to yrn>ir —1 T33K a B C H a a p srepsearch {) c b V H K H H H H w h i l e flaBTaJIfl j —H H H JTTa —1
fiOJIOXOH f o r flapTajITMH j++ YHJr;UI33p j**0 60JI0X Yft-flflJIHHr 30XHHyyjT* erceH.
T yc jia x M accHBb.H y r r u r toaopxohjiox initnext () (Jjyhkhhhh KOAbir floop
Y3YYJHI39-
v o i d initnex t ( c h a r *pat, int next(], int m) (
int i, j;
nextEO] = -1;
for (i=0, ■ j= -1; i<m; i++,- j++, next[i] = j)
w h i l e ( (5>*!0) && (pat[ij != patt j ] ) ) 3 nextEjt; ;
k m p x a i M T H H a l r o p H T M b i r TercreJier-TOJieBT MaxuHHbi 3arBapaap oiiji-
228
Tnmdiim Mep
roMXToii TaifaiSapjiax 6ojiho. Tojiobt Mammi Hb TyxaiiH aniiHHA siMap hsi TeJiBHHrxaaraJiaxTexeepeM* (3arBap) 6 e reea opoJiTbiH ereiwieec xaMaapn T6JI0B Hb eep'iJier/iex SojiOMaeroii. Gepeep x3 j163.11 Teiiom Mamwii Hb (1 ) aHXHbi TeJieB, (2 ) opojiTUH 6 o j i o m x h t yixbiH ojiohjiot, (3 ) opojrrooc xaMaapn YYC3X UIMH3 TejiBYYflHHH ojiohjiot, (4 ) uiHH3 TeJiBeec rapax yii-naan 6yioy rapamrbiH yrrHH OJiOHJiorooc SypAAar. Xercrejier-TejieB r MauiHH (TTM) Hb TOAopxoii TercreJier t o o h to jibyyatsh 6aiiwar. TarB3Ji xaiix t smasit Mep 1 0 1 0 0 1 1 -HHH xyBbu kmp ajiropHTMaap axM Jiax Torcrejior-reJieB M a u i H H u r15.2 —p 3ypraap y3YYJUI33
3y p a r 15.2. KM P anropnTMbiH Tercrener-reneBT MauiMH
3yparr Y3 YY-'ic3 H TTM —a r e k c t M3A 33/uiMiir opyy/icHaap ieiccT33C 1010011
T3MA3IT Mep OJIAOX 3C3XHH1’ TOAOpXOHJIOX IOM. 9H3 TFM Hb aHXHbi TeJIBHHH xaMT naiiMaH to jio b ts h Q ereen TejiByyUHHr AyraapjiacaH To iip roop , aMXHJiTTaii xapbuyynaJiTLir u iy jiyy ii x o ji6oocoop , xapiiH aM/KHJmrYii xapbuyyjiajiTbir Mypyii xo/i6oocoop rye Tyc hjispxm hjicbh. XspsB /isspx TTM HB3HCHHH “ 7 ” T0JIBBT OpBO/I Vr TeKCT33C 1010011 T3MA3IT OJIACOH T3C3H yr. TyxaiiH TeJiBeec aMaouiTryii xapbuyyjiajrrbiH Aapaa o lin x TejieB Hb next MaccHBUH yrraap TOAopxoHJiorAoiio. 5Khui3 3 ji63 ji 15.1 —p 3yparr aBcaH 100101001010011001 rscaH TeKCTHiir T T M -a opyyjixc 1010011 tsm a s tt MepHiir x3px3H xaiixbir coHHpxurooe.
TeKCTHHH T3MA3TT 6YP Hb OpOJITblH 0ie rA 0JI 60JI0X 6e i eeA TCKCTHiiH 3XH33C T3MA3rr 6yp33pT T M -A opyyjiHa. 3xhhm k - i xapbuyyjiajrr aMxciuiTTaii
229
SyA32 15
XHHI7JC3 H toxh o jiaojia T T M - h h h k A y ra a p TejisBT o h h o . 9 h a s 3C x a p a x a A
KMP a jiro p H T M H b TeK CTH H H XyBbA X3333 H 6 y iia X YHJ1A3JI XHHXTYH. KMP
xaftJ iTH H a jiro p H T M A o(m +n) x a p b u y y jia jiT x H ftr flA 3 r .
15.3 —p 3ypraap 15.1 —p 3 yp a rr y 3YYJIC3h x h u is o t km p a jiropHTM aap xaftx
YHJW iHftr xapyyju iaa.
1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1
1 o [T j o p||| i
1 Q ]1 0 0 1 0 1 0 0 | 1 I 0| 1 I 0| 0| 1 [ 1 I 0 0 1
3y p a r 15.3. KMP xa iijiT b iH anropHTM
3 y p r a a c x a p a x a A S h a h h h a B ca H x o e p T b iH t 3 M A 3 I t M e p H H H x yB b A k m p a jirop H T M H b e M H e x s h i t i h h x a iu iT H H a p ra a c u e e x e n x a p b H y y jia jr r x h h t a s x
H b x a p a r A a * 6 aH H a. F s c s h x s a h h h 6 o a h t x a p a r a s s H A s s p k m p a jiro p H T M H b
3H rH H H x a iijiT b iH a p ra a c HJispxHH x yp A a n 6 a ib K la f lu a r ry H o j io h T o x n o J w iy y A
6 a iiA a r . Y 'tH p H b h x s h x x s p s n r e s H H ii xyBbA x a i ix t 3 M A 3 it M e p 6 o j i o h t c k c t
Hb o j io h A aB TarA caH (x o e p T b iH t c k c t u m r ) T 3 M A 3 r ra r y y jic a H 6 a itx H b x o b o p
6 a fiA a r .
Boyer-Moore ajiropHTM
km p a jiro p H T M H b T 3 M A 3 IT M e p A o p o j in o x T3M A3 ITYYA o j ih o o p A aB Ta i A a a rY #
t o x h o j ia o j ia Y P a u ra r r a f t 6 o jd k la A a a r r y t i . 9 h s a jirop H T M H b T e K C T H ta 6 y x
T3M A3 rTH H r u ia j ir a x b ir m a a p fln a r . X a A H H ra a p n a iv e s e a r c h ( ) aJ iropH TM H H
x a M ra iiH M y y t o x h o j i a o j i a km psearch ( ) a n rop H T M H b o(n+m ) x a p b u y y jia jiT
x h h h h j iy y x yp A a H a a a u m a x S o jio b h epeH X H H t o x h o j ia o j ia ( t c k c t p e A a ic ro p
3 3 p s r 6 o a h t X 3p 3rji33 H H H x yB b A ) M au i 6 a ra a jir a a x a p a r flA a r .
H a s p x x o e p a J iro p H T M a a c h j i y y x y p A a H a xH J iJ ia x r y p a B A a x b x a ii j iT b iH
a jiro p H T M 6 o j i B o y e r , M o o re (b - m ) H ap b iH ra p r a c a H a jiro p H T M iom . b -m
an rop H T M Hb T 3 M A 3 IT M e p n ft r T e K c ra i iH 3XJi3Ji33c x a iix A a a x a p b u y y jia jr rb ir
f3 M A 3 IT M ep H H H T e r c r e j i e e c s x j is j i p y y (S a p y y n a a c 3YY>i 4 H t j i3 j ia ) xH H Asr.
T s m a s i t M ep H ftH T e r c r e J in ftH t s m a s i t s a x h h x 3 x h h h x a p b iiy y j ia j iT U H YP
A Y H r s a c x a M a a p y A a p a a^ iH H ij x a p b u y y j ia j iT a x j ia x t c k c t h h h S a t t p j ia jm r
T O A o p x o H J iA o r . X a p b u y y j ia J iT b ir H M a r r t 3 M A 3 i t m s p h h h T e r c r e J iH i iH
3JieM eHT33C 3X3JIA3T.
230
TiMdsem Mep
f5.4 - p 3 y p ra a p “ p i l l ” T S M ip r r M e p H itr “the caterpillar” TeK CTaac xaiix X H U i3 3 r3 3 p b m a jiro p H T M b ir x a iin 6 apjiaH .
th e c a t e r p i l l a r Xapbuyynaox aMaaurrryH: p i l l Xoocoh 3aft ( 1 ' ) xsM/prr Mepn Saftxryii ynnp
AapaaiHHH aepseH xsMflsrr pyy uihjukhs.
the c a t e r p i l l a r - XapMiyyjia/rx aAOKH/ixryft:
p i 11 TswwsrT Mepn ' e ' ranuprr OaftxryH yHHp
AapaaHHHH a o p b o h xsntasrr pyy i h k k k h s .
th e c a t e r p i l l a r XapbUtyy/iajix aMXH/rrraM:p i l l TsMflsrr MopHilH 6apyyHaac 3yyH iH rrajw
xapbuyyjiajrmr yprejDKnyyJiHS.
the c a t e r p i l l a r Xapbuyyjiarr aMxtnrxryft:
p i l l Tsmasit Mep;i ' i > xsmasit 6afiraa ynnp* * T3MA3IT MepHKH ' i ' T3MA3rTHflr XeKCXHHH
' i ' T3MA31THHH 6afipjiajui xapraji3yyjiaH uijHracyy/iH3.
th e c a t e r p i l l a r Xapbuyywun aMMHjmaii:p i l l Tawwarr M epnta 6apyyHaac 3yyn 'utrmnaA * * * xapMiyynajiTHr yprsJEJWYyjms. Xafiurr
aaropHTMaac jmrapax ro;i oHU/ior 6 o ji TexcHftH 3apHM x s m ^ s tx xapbuyyaarflaxryii Ganx Sojiom jkxoh. XapHH kmp a jiropH TM aap xeKCTHHH T3 H53 IT 6yp xapbuyyjiarflaar.
Hb T3MA3IT Mepji opcum ooryii ynnp TekcTHHH xapbityyjiajiT aMXHiiTryn S o jicoh 6aiip jiajiaac 7 6aiip jiajiaap iiih jix h s . 3 h a * h i. 7 6aMpjraJiaap uihjdkhhs. 9 h 3 toxh o jiao jia 6hah nil T3Mfl3rr Mep Hb 6 6aiipJi;uiaap ihhjdkhx 6ojtho.
AT-THATWHICH-FINALLY-HALTS.AT-THAT-POINT
| T3MH3TT 7 6aitpiiaji uihji:sc33A T3Mfl3TT MepHHH T e rc r e j ie e c flaxm i xapbuyyjrac sxsjihs. 3 xh h h xapbHyyjiaJiT ‘ t ’ tsm asith h h xyiiba aM>KHJiiTaH 6ojicoh y iH p Aapaa'iHHH xapbiiyy/iaiiT omhox T3MA3It YPYY ihhjkkhhs.
AT-THATWHICH-FINALLY-HALTS. AT-THAT-POINT
3 h a TeKCTMHH t s m a s it A33pxapbuyyjiajiTaMXHjnryH 6ojijioo. rsM iisnHb T3MiJ3I~I’ Mepfl OpOJIUCOH yHHp A T3MA3IT 4 6a0pjiajiaap XOMLU UHUDKHJIT XHHH3.
AT-THATWHICH-FINALLY-HALTS. AT-THAT-POINT
U Ih jd k h jit XHflcHHii aapaa xap m yy jia jrr tsm a sc t M epiiiiH Tercre/ ieec XHftrASX 6a 6hahhh xaiicaH tsm a s tt Mep tckctm hh 3113 6aiipjiajiaac ojwoac 6 a tea .
fl33px JKHUI33H33C xapaxaA 6ha3ha xaiix tsm asit MepMiin T3MA3nYYAH$H xyxaii m sassjis ji uiaap/uiaraTaH. Y yh h h TyjiA in t pos [ 256) ; Tycviax MaccHB aamrjiaHa. pos MaccHB Hb TyxaiiH tsm asit assp xapbuyyjiajiT aMvKiwrryH 6o jioxoa xhhx iHHJOCHJiTHfir TOAopxoMjiAor. vKmih33ji63ji 16.4 —p jypraap
233
SyAse 15
X3p3B 3H3 yHJiasJI Hb T3MH31T MepHHH XaMIHHH 3XHHH T3Mfl3ITHHH xyisMt aMXHJiTTaH 6oji6oji 6wflHHW xaiicaH TaMasrr Mep tck ctssc o n ji f lo o
T3C3H yr.3. X a p 3B xapbuyyjia jiT sw ap h s t TSM aarr # 33p aMacHJiTryft 6o a 6oji
(aapaaTOHH xapbuyyjiajiT axasx SaftpjiajjHr) u ihjdkhjit xhhx anxaMbir aapaax xoep xoxnoaayyaabiH xyBBfl ToaopxoiiJiHO. Yynji:(a ) XapbHyyjiajrrbir awraaunTyft 6o jh ocoh tck cth h h tsm a s it Hb tsm asit
Mepa SattxryH 6ojx xapbuyyaajrr aMaauiTryii So jicoh tb k cth h h TyxaHH 6aiipjiajiaac T3Mfl3rr MepHHH ypTaap uihjdkhjit xhhh3.
(b ) Xapbuyyjia/irar aM *irjiTryii 6ojicoh tck c th h h TSMaarr Hb T3Mfl3rr Mepa 6altx ToxnoJiaoJia aapaax xoep yrrbra anb hx yrraap hjhjdkhjit XHH£3r. 3h 9 yHJXZpJI Hb bmsearchO (jiyHKUHHH i .+= raax (M -j, poa [ t e x t [ i ] ] ) ; yitiiaJi33p Toaopxofljioraaor. 3 xh h h y r r a M-j Hb T3Ma3rr MepwHH xapbuyyjiaiiTbir aMacHarryft 6o;irocoH T3Mfl3rraHH 6afipjTaiiaac T3Mxt3rr MepHHH Tercre ji xyprajix 3ali iom. 3H a m Hb f3M fl3rr MepHHH ypTHT HJI3pXHHJIH3.
XapHH a a p a a 'm im p o s [ t e x t [ i ] ] yTra h b xapbHyyJiaJiTbir aMMJiTryft 6ojirocoH tckcthh h T3Ma3rrHHH TSMasrr Mepa Safipjiax 6aHpaaaaac TSMasrr MepHHH T erc rea xypT3a x 3aii iom. pos [ ] MaccHBHH y T iw r i . n i t p o s o 4>vhkh h h h TycJ iaM XTaflraap ToaopxoHJiox Sojtho.
3 Ha “ a t - t h a t ” TSM aarr M e p n iir “ w h ic h - f i n a l l y - h a l t s . a t - t h a t - p o i n t ”
TCKCT33C xaiix eep H3r M u ra a r aB1! y3be. T ck c th h h axasaaac xaflm rar xhhx 6a xapHH xapbuyyjrajiTbir TSMasrr MepHHH Tercreaeec 3X3JIH3. a T3Ma3r i 33p xapbuyyjiajiT x j i i ir a s x 6yft Tyxaita Savipjuurbir mrapxHHJiHa.
AT-THATW HICH-FINALLY-HALTS. AT-THAT-PO INT
3 H a tck c th h h ‘ f ’ T3MA3IT assp xapbuyyaajiT aMXCHJirryH S o jic o h 6e re e a ‘ f ’ hb TSMaarr Mepa opojiuooryH. W iM i i 3.(a ) ajixaMa ToaopxoiiJicHoop TSMaarr MepHHH ypraap 7 6aHpjiaji ihhjdkhhs.
AT-XiiATWHICH-FIMALIiY-HALTS. AT-THAT-POINT
3 h h m sh xapbuyyjiaaT t c k c th h h ' T3Ma3rraHH xyBba aM3KHJixryfi 6ojdk (SaifHa. XapHH ' TSMJprr Hb TaMAarT MepT opoaucoH 6e re e a TSMaarr MepHiiH T erc rea xypT3Jix 3aft Hb 4 6aiffla. M h m ssc 3 . (b ) ajixaM ecoop 4 ijanpjiaji u ih jd k h jit x h h h s .
TsMdazm Mep
oftpcwmooroop n /m xapmyyjiajiT XHiijjar. b -m aJiropHTM H b xaMrutin My y
t o x h o j m o j i a k m p ajiropHTMHH a/i,HJi m y r a M a H Saiyiar. T s b 'j HX3HX xspsniasHA
3H 3 aJiropHTM Hb separ Y3YY,I3jn' xapyyjiflar. Xapbnyyjiajrr 6ypfl t c k c t 33c
aBaX T3MA3IT H b T3Mfl3IT Mepfl 6aHXTyH TOXHOJIflOJIfl UIHJDKHJIT Hb M aJIXMaap
ycapH flBHa.
M3JI33X 3H3 aJiropHTM Hb XoepTHH T3Mfl3IT M0pfl C3HH YP-HYH Y3YYJI3XrYM- Y r a p Hb h&m TopjiMHH TeKCT Hb 30BX6H 0 6a 1 recsH xoepxoH HJiraaTaii T3Mfl3rr33c TorTflor. XapHH xoepTbiH TeKCTwr HaiiM HaftMaap Hb 6yji3rji3H xapraraax “ t3m a3It” -33p 0ji3Pxhhji63ji b -m anropHTM HbflaapxHHH Hsr a^HJi yp Aynr Y3YYJIH3.
BHflHHH Y3C3H T3MA3IT M e p H H H XaHJITblH ajirOpHTMyyflaaC B-M anropHTM Hb
oflooroop M3fl3rfl3X 6attraa xa M r H H H cawn, M a m sHrHHH, epreH aiun mar/war
XaMTHHH cattH ajiropHTMbir conrox Hb TyxaiiH xspsrassHji, opojm ox HJiraaTaiiT3Mfl3ITHHH TOOHOOC, M 0 H T3M/I3rTYy/lHHH T3MJl3rr Mepfl flaBTal'JiaH OpOX
to o h o o c xaMaapax 6ojiho. >Khui33ji63ji epflHHH tc k c t (A h m h xsji ;i33p 6niHrjlC3H TCKCT) M3H33JIJIHHH XyBbfl KMP aJiropHTM Hb SHrHHH XajiJITHH ajiropHTMaac apan xypjiaH 6aii/iar 6oji b-m anropHTM Hb kmp aJiropimtaac xaMaarYH h jiyy YP am Hrraii 6aiiflar. T 3rB3Ji xoepTHH tc k c t (TSM flsrraiir flaBTaracaH flapaajiaji HXTaft) msjissjijihhh xyBbji kmp aJiropHTM Hb 3H ihhh xawJiTHH apraac hjiyy cairn aacHJUiaflar 6oji b-m ajirpHTM Hb kmp anropHTMaac suirapax tojihw 6ara yp amHrraii 6aitnar.
Eyjaa 15
aBcaH p i l l T3Mfl3rT M epu ftr xaftx y e a p o s [ - p * ] = 3 ; p o s [ ' i ' ] =2 pos t ' l ' 1 <=0 T3C3H yTryyAur xaarajiax 6e reeA 3H3 H b xsM jisrr MepHiin T ercre jieec xyxaftH xsM jjsrr xyprsjix 3aft iom. X sp3B ts m a s it Hb ts m a s it Mepji AaBTar/ian opcoH 6oji xaMrHHH 6apyyH xajiHHxaap Hb aBAar. XapHH T3M flsn MepA 6aiixrYH T3MA3ITHhh xyBbA pos MaccHBHH xapraji3ax yrra xaiix T3MA3r MepHHH ypTTaft ts h iiy y 6aim a. pos [ ] MaccHBT yrra ojirox in i tp o s () 4>yHKHHttr Aoop Y3YYJU133-
initpos(char *pat) {
int j, M = strlen(pat);
for (j a 0; j < 256; j++) pos[j] = M;for (j = 0; j < M; j++) pos [pat [j]] = M-j-1;
>
Jl,33px cjjyHKUHHti a p r yMeHTaap xaftx tsmasxt MepHftr AaMxyyjina. 3 h s
4>yHKHHftH TycjiaMXTaftraap xapbuyyjiajiT aMaKHJiTryft Sojioxoa x h h x
S n a i l U H U A 3 p X U U J 1 3 J I Hb T3MA3rTYY£ 6OJIOH YHJIAJI33C TOITAOr, XaHX X3B luiiHDKHHr HJi3pxHHJi3x sdeeapm xaMrniiH T0XHp0M>KT0H, yaH xaTaH apra IOM. 3HrHHH HJTSpXHHJISJIA OpOJIUOX TSMASrTYYtfHfrH XOOpOHA X0Jl600C 60JI0X rypBaH yhacsh yh jiasji 6aiiAar.
(1) Huuj\3jim\ Xanx 3arBapT AapaajiaH op coH xo ep TSMA3rT Hb t c k c t . MSA33JIJI33C o j ia o x a o o M9H Aapaa jiaH 6an p jia ca H 6a iix ecTOH., >KhUIS3JI63JI abdc r3>K XaftBaJI TeKCT M3A3SJIJISSC abdc tscsh j TSMA3ITYYAHHr OJIHO.
ecTOH. 6yroy yhjiajihht 4- tsm atssp hjispxhhjisx 6 a xaaJiTMH TycjiaM>KTaHraap 6YJisrji3>K 6ojtho. >Khihssji63JI a+b rsAsr 3araap Hb a 3CB3JI b T3MA3IT MepYY# 60JIH0 . c (a+b) d rSASr Hb cad 3CBSJI cbd 60JIH0 . (ac+b) d TSAsr Hb acd SCBSJI bd 6 0JIH0 . (a+b) (c+d) Hb ac, ad, be, bd — HHH ajib Hb H TOXHpHO.
(3) dciemcuim: T sm astt MepHHr xanx 3arBapT sh s yftjitftosp TOAopxoHJiorAcoH T3MA3iTHHr AaBTarAaH opoxbir 3eBineepAer. 3hs YHJiAAHHr HJispxiiHABAA AaBTarAax TSMA3rT s c b s ji xaajrraap 6YA3rji3rAcsH tsmasityyothh apA * T3MATHHr TaBb>K TOAopxonjiAor. >KhuiS3J16sji ab* T3ASr Hb a, ab, abb, abbb ... TSX MST b —HHH XSASH M
236
3aeeapaap maAtdaem Mep xaux
(xoocoh 6yioy 0 AaBxajrr opno) j^ irn m r Gaiiac 6ojiho. (ab) * r3A3r Hb .(xoocoh), ab, abab ,ababab, ... T3X M3X 60JIH0 . ( a + b ) * Hb .(XOOCOH), a, b, aa, bb, ab, ba, aaa, aab, aba, ... T3X M3T 6ojiho. c ( a + b ) * Hbe, ca, cb, caa , cab, cba, ebb, caaa, ... T3X M3T 6ojiho.
3HrHHH HJI3pXHHJIJI33p T3MA3IT MepHHr XailX g r e p , awk, emacs 33p3r xyHHpxsr xspsrcjrYYAHHr Unix cHcreM33c xap>K 6ojiho. (TsrBSJi dos yh jw ih h h CHCTeMHHH f in d KOMaHA Hb B-M ajiropHTMbir aUIMDiacaH 3HrHHH Jl H3r X3psrC3A IOM.) MeH 3apHM UIHH3 nporpaMMHAaJIblll X3JIYYA3A 3HriIHH HJI3PXHHJI3JI aiHHrJiaH T3MA3IT MQpHHT X3B IHHH5K33p XaHX 60J10M)K00p xaHrarAcaH 6a&Aar. TyxaHJi6a.ri www-a aiuimiarAax xesxx cfmHJibiH 6oJioBcpyyAa7rraA Main epren xspsnisAsr P e r l nporpaMMluiajibih xsjihht xsjdk 6o jiho.
1TsrB3A 3arBap 6y ioy 3HrnHH HJispxHHJUiHHr modopxou oyc xercreJier-xeJieBT MauiHHaap HnspxHHJiAsr. Yhhp Hb 3HrHHH HA3pxHHA3AA opojiuox “ 6y ioy ” , “ AaBxajix” 33p3r yh jiaassc xaMaapn Maui o jioh MJiraaxaii cajiaa SoAOMxyyA 6 an A ar. X s p s s H s rs s c o j io h 6ojiom>k xyjirapB aji M auiun ajib joBMi-ir “ T aaB ap jiaH ” c o H ro A o r . X s A H iir s s p hhm “ x a a e a p jia x ” yttjrAJiHkr
237
Byji32 16
nporpaMMHJiax So jiO M xryH m st 6 o j i o b 4 TyyH H itr nporpaM M A xa ji6apxaH himhas^k 6o jih o . vKhui33ji63ji TeKCT M3A33JW33c (a *b + a c ) d 3arBapaap XaHUT XHHX3A au iH rjiar^ax TOAQpxoi* 6y c Tercro jiT -TeJ ieB T MauiHHur 16.1 —p
TyxaHH T3MA3rm H r inajirax m ia# toxhojwox 6yx Sojtomdkht TejiByyzmHr AaBxap xercreJiT #apaajiajm xa^rajiax Seree# 3AT33p TeJiByy^HHr 33JDK33p rapran majirax&aa (1) xspsB n u ll T0JI0B 6oji rapajrraH Aaxb xoep (s c b s ji H3r) TejiBHHr Hb xa#rajiax, (2) xspsB yr to jibhhh tsm /p it hb opojiTbiH TSM/prrreHH2KHJI 60JI Aapaa'IHHH OpOJITHH T3M/I3ITT3H XapbljyyJiaX UIHH3 TOJIBHHrxa ^ ra jia x , (3 ) xspsB y r to jib h m h ts m a s ft opo/iTbiH TSM^srTSsc HJiraaxaH 6o ji TYYHHHr OpXHHO.
flapaax p a t t e r n m a t c h () c|)yHKJU H b A a B x a p rocroJiT #apaajiaji auramaH 3 arBapaap T 3 M £ 3 r r M o p xaiix t o a o p x o h 6 y c rarcroJier Ma u i H H b i axHJinaraar
xapyyjiHa. T c k c t h k h TyxaiiH H 3 r opojrrbiH T3M/i3n'MHr majirax y e # M a uiHHbi
T0JI0B T3C3H XOep TOpJTHHH T6JIOBT3H. 3 h A 3 3C XapaXafl TYYHHft TOJIBHHr
U00X0H M3H33JTJT33P TO/IOpXOM/DK 60JTH0.
T T M - h h to jib y y ^ ^yraap jia r^caH aap to jib y y a s a xaHftaxflaa ayraapb ir amnrjia^c 6ojtox 6a yyhhht MaccHBaap hsbtpyy-tcsx Hb xaMrHHH TOXHpoMacroii TOM. EWH HHiieKCHHH ilVTaap Hb TOJIBYYOTHr HJI3pXHHJI3X ch , n e x t l , n ex t2
T3C3H rvpBaH napajmejTb MaccHB auiHm ax 6ojiho. )Khui33Ji63ji (a *b + a c )d 3arBapT xaprajnax 16.1 —p 3yparT y3YYJIC3H MauiHHbir ch, n e x t l , next2 rypBaH napajurejib MaccHBbiH TycjiaMJKTaiiraap^apaax 6aHx^iaap HJi3pxHHJiH3.
s ta te 0 1 2 j 4 5 6 7 8 9ch A B A C D
n e x t l 5 2 3 4 8 6 7 8 9 0n e x t2 5 0 1 4 8 2 7 8 9 0MaccHByy/ibiH s t a t e HH iieKCTxapraji3ax ere rzy iyY fl Hb TO flopxoH 6yc TTM- Hbl aXHJIJTaX ropH M bir TOZIOpXOHJIHO. s t a t e T0JI0BT OHCOHOOp ch [ s t a t e ] — h h ta B 4 T 3 M ^ 3 n n H r u ia jirax 6a #apaa Hb n e x t l [ s t a t e ] (3CB3Jinext2 [ s t a t e ] )
6o jt T0/I0B 0 Hb aHXHbi to j io b 6o jth o . Hsr rapa jrrraH n u l l to jib y y ^ h h h n e x t l 6a next2 MaccHBbiH xapraji3ax y r ry y n H5KHJI 6aHHa.
MaccHBaap X3pX3H HJl3pXHHJI3XHHr Y3JI33. XapHH SHrHHH HJI3pXHHJDI33C Tou;opxoH 6yc TTM YYcr3X nporpaMM 6hhhx aacHJi Hb 6yx3Jm33 e ep c3^3bt
xaMaapax iom. 3 h s Hb aapaaqHHH xscrssp y33X xsji 3yhh 3a,iyiaH Hjiraji xhhx C3£BHHH flop Hpnr^ax 6OJIHO. XapHH 3HJX 6Hfl TyXaHH 3HTHHH HJI3pXHHJI3Jm xapraji3ax To/iopxoH 6yc TTM -H H r H J ispxn itox ch, n e x t l , next2 T3C3H MaccHByyii TonopxoHJiorxicoH r s x Y333fl 3arBapaap t s m jp i t Mep xa iix ajiropHTMbir TaHJi6apJiaH.
3 h t h h h HJT3pxHHJi3Jin ere race h 3arBapaap T3M^3rT M ep xanx ajiropHTMHH
GYYJTOiMH ajrxaM 6 oji To^opxon 6yc TTM - h h h axHJiJiaraar xapyyjiax
nporpaM M 6 h ^ h x a)KHJi 6 o j i h o . X a p H H 3 o b xapnyr “ TaaBapjiaac” ^ a x
nporpaMM 6h m h x h b Go j io m kxym 3YHJ1 i o m . Fs c s h X 3^h h h nporpaMMbiH
240
EyA32 16
j++ ; dq .insert(scan) ; state = n ex tl[ 0 ] ; continue;
}else i f (ch [state ] == t e x t [ j ] )
d q .in se rt (n e x t l[s ta te ]) ; e lse i f (ch [state ] == ' ' ) {
nl = n e x t l[s ta te ]; n2 = next2 [s t a t e ] ; dq.push (n l); i f (nl != n2 ) dq.push(n2 ) ;
char te x t [80];cout « "input text : " ;g e ts (te x t );s t rc a t (te x t ," ;cout << patternmatch(text) << endl;
X3p3B N OpOJITBIH T3MJJ3IT 6ypT M TOJieBTSft MaiHHHBI T6JIOB 6yp33p 60JI0BCpyyj[ajrr XHHH3 r3B3JI,H33pX patternmatch () 4>yHKU, HB OHpOJHJOOTOOp xaMrHHH Myy T0XH0jm0jm m n xyraijaaHfl aacHJLJiaHa. Tsb*i 3H# hsbtpyy^csh patternmatch () (JjyHKUHHH xyBBA 3H3 xyraijaa hb ToxHpoxryH. Y rap hb TejiBHHr AaBxap Tercrejrr flapaajiajm xhhx ye# 4>yHKii; hb yr TeJieB flapaanajm 6anraa 3C3Xhht majiraflarryHrssc TejiBYYfl .napaajiaji# jjaiftapflaH opox 6ojioM5KTofi. 3h3 acyy,n;jiBir flaBxap TercrejiT flapaajDiHH (^yHKUYYflSfl eepHJieJiT x n te ihhhas^ 6ojiho.
3h3 ajiropHTMLir tyhussxhhh Tyjw 6h#3HH AypLiH sHraim HJispxHHJUiHftr TQAopxoH-Syc T T M pyy xepBYY-^^x H3M3JIT (JyHKU, uiaaprtiiaraTaH. Gepeep X3Jlf>3JI TyxaHH 3HTHHH HJISpXHttJISJIfl XapraJI3aX ch, n e x t l , n e x t2 MaccHByyftbiH yTLir toaopxohjiox maapAJiarataH. )Khih33Ji63ji ca*b sHrnftn
242
Sueeapaap m iudsetn Mep xaiix
mjispxiihjijih ii h TOAopxoii-6yc T T M MauiHH Hb:
0 1 2 3 4ch c a bnextl 1 2 1 4 0next2 1 3 1 4 0
T3)K TO AO pxoii JlOrMO r 6oJl c (a+b )d 3HrHHH HJT3pXMHJUIHHH TOAOpXOH-6yCT T M hi>:
0 1 2 3 4 5ch c a b dnextl 1 2 4 4 5 0next2 1 3 4 4 5 0
T3HC TOAOpXOHJIOrAAOr.
9HrHHH HJI3pXHHJIJ133C TO/lOpXOH-6yC T T M pyy X0pB\’\'J13X aJKHJl 6yX3JM33 x3A 3\niH 3 c id jia n s im a n x h h x c sa sb t xaMaap/jar. X s jd yh h jazmaH a jira jiu H TaJiaap Aapaam wH Gy/isiT to b 1! TaH hji nax 6ojiho.
a p ru r aB4 y3be. 3 h s apra hb peK ypc auinrjiaH erer/iceH t s m a s it M e p M r TyxaflH X3JIHHH AYPM sap 3a/yiaH lUHHXHJmsr. ^ a a p a a c a o o u i a p ru r eM Hex
< e x p re s s io n > : : ■ <term > | <term > + < e x p re s s io n >
sxhh h opjiyyjiax a y p m h Bh npoueAypHr
e x p r e s s io n ( ) { t e r m ( ) ;
i f f p t j ] == ' + ' ) { j + + ; e x p r e s s io n ( ) ;
}}
T35K TOAOpXOftjm 60J1H0 . p T3MA3IT M6p Hb 3aAJiaH AJiraJI XHttrASX 3HrHHH HJiapxHHJiJiHHr aryyjiax 6a j h h a c k c h h h TycjiaM XTaiiraap T3MA3IT 6yphhh
xyBbA urarrrajiT xh hh s. e x p r e s s io n ( ) npoueAypbir AyyAaxnaa j xyBbcar4MA0 T3C3H aHXHH JTTa OJirOHO. e x p r e s s io n ( ) n pou eA yp Hb 3XJI33A t e r m ( ) npoueAypHr AyyAAar.
<term > : : = < fa c to r > | < £ a c to r> <term >
opjiyyjiax a y pm h h h xapraji3ax npoueAypbir
te r m ( ) { f a c t o r ( ) ;i f ( (p t j ] == ' ( ' ) || l e t t e r (p [ j ] ) )
t e r m ! ) ;
T33K TOAOpXOHJIHO.
O pAyyJ iax a y p sm a T O A o p x o iiJ io ra co H o op t e r m o n p o u e a y p Hb s x jis s a f a c t o r o n p o u eA yp H r AyyAax 6o jih o . f a c t o r ( ) n pou eA yp Hb opojiTH H
j++ ; expression ( ) ; i f (p t j ] f*5* ' ) ' ) j++ ; e lse e r r o r ( ) ;
ie lse i f ( l e t t e r (p [ j ] ) ) j++ ; e lse e r r o r ( ) ; i f (p [ j ] * * ' * ' ) j++;
T3>k TOAopxoHJiHO. factor () npoueAypA uiaJirarAaac 6yw opojrrbiH T3MA3It Hb *(’ 3CB3JI ycsr 6aHxaac 6ycaA toxh o jia o jia ajwaa orex 6a moh *)’ xaaJiT opxHrAcoH to xh o jiao jia ajiAaa e ra e .
expression ( ) , terra ( ) , factor () (})yHKUYYA Hb peKypcT (})yHKUYYA 6aiiX 6a xapHJmaH 6 n ec3 3 AyyAcaH yn n p 3apHM n porpaM M qjia jib iH x s ji A33p
T3MA3IT Mop p Hb (a*b+ac) d -H H r aryyjiax yeA A33px rypBaH npoueAypaap XHHTA3X ajixMyyAbir Aoop Y3yyjiji33.
expressionterm
factorr\expression
termfactor A * term
factor B+expression
termfactor A term
factor C)
termfactor D
248
X3A3YUH 3adjl(lH JLMCUl
f a c t o r ( ) npoueaypT -I- t 3MA3T33C 6ycaA 6yx T3MA3rntHr manraac 6aHHa.
3 h 3 npo ijecc hi> 16.11 - p 3ypar Y3YYJIC3H xaJi3yftH aa^JiaK a/irajiHH m oahh 3JieMeHTYYA33p rynx “ ypLxaac ohhx” apraran aAHJi k>m. Eha m oahh oponrooc 3XJI3H A33p33c A oou ioo HHrjiajiA yr n po ijeccH r rYHiJ3TT3}K 6awraa ynup 3H3 a p rn r xsjnyHH “ A33P33C a o ou i” 3aAJiaH ajira ji xhhx apra r3)K H3pji3A3r. ^aapaac aoou i 3aAJiaH Hjiraji x M x apra hi> 3apuM AYPM™ H xyBLA a^oiJUiaxrYM 6aux to xh o jia oa 6aHAar.
3 h 3 TSMflarr MepA sx jissa ‘ a ’ ts m a s t t 7 yaaa, Aapaa hb ‘b ’ t3 m a3tt 5 ynaa, ‘ c ’ T3MA3IT 8 ynaa, ‘ d ’ ts m a s it 2 y/iaa opcoH 6aHHa. 9 h 3 A.afiTaraax 'lanapbir auiHrJian TyxaiiH TSM flsra iH r x sa sh yflaa AaBTaiAcan to o h h xaMT aapaax Saiifljiaap hjispxhhjdk 6ojiho.
7a5b8cla2d
3hs caHaan A33P YHA3CJI3H scoAliMJiojrbir anraaTaH apraap Toaopxcwjicon ojioh xapsraas 6ahAar. TyxaiiJi6aJi 3H3 apra Hb xoepTHH cjjaii/i xajiSapsap ererAsx 3yprHiiH <|>afiJiyyBHH xyBtA Maui yp auiHrraH 6aMAar. M h m TepjiniiH (jjaHJiwr 3OBX0H 0 6a 1 t s m a s t t y y a h h h s s j d k j is h opoxASAAapaaJUibiHTooroop HJiapxHHJix 6ojiho. 5Khhi33Ji63JI 18.1 —p sypraap h TSMAsrTHiiH 6 h t AYPCJI3JXMHr KOAIHJIOJtblH X3MT Y3YYJ1JI33.
3ypar 18.1 TaM flam ifiH 6mt flypcnsn 6a flaBTariTaap koahmjiox
18.1 —p 3yprHHH 3XHHH MOpHHH 1 4 13 T3C3H KOA Hb 3XJ133A 0 H3F ynaa. Aapaa hb 1 asp bsh yAaa, s h s c t hb 0 apBaH rypBaH ynaa opcHBir luispxHi-iJiHs. 3 h 3 apra Hb 4>aHJiHH tsm a s tty ya xsahh ih h s s ypT AapaajiaH opox rycaM
h jiyy YP auiHrraH SaftAar 6o ji acp sresp T3MA3rTYY/i Hb AapaajiaH opoory ii to xh o jiao jia aiHHrryH iom.
XapHH xoepTHH (JiaHJiBiH 0 6a 1 hb AaBTarAaH op oo ry ii to xh o jiao jia 6 ha apaii e e p X3Ji6sp33p k o a 'ih j i* 6ojiho. 3 n s apra hb xoepTbiH (Jjaii/iBiH ohiyy/uhii HaiiM HaiiMaap 6ariy ian xapraji3ax tsm a sttssp (a s c i i ) cojibxc HJiapxHiwrnsr. >KhID33Ji63JI: 010101010101010100 T3C3H 61ITYYAMHH UyBaaHA 9MH0X aprw r aninrjiaBaji:
3 h 3 apraap MSflssJiJUiHr iuaxax yen suiraaTaH tsm asithh ii to o hxcsx TycaM yp arnur MyyTaft 6ojiho . H eree Tanaac T3MA3rniifr to itm o j i ypTraii (S h t h h h to o ) KOflOOp IlJI3pXHHJI3X Hb THHM H OHOBITOH apra 6HUI K3M. HHM33C TSMflsrm iir xyBbcax ypTratt Rofloop H Jiapxnitox H3r3H apraTait TaHHJiup>H.
XyBbcax ypTTaii koamhjioji
0MH9X to itm o ji yp iT a ii Ko/joop cjjaftjibir uiaxax anropHTM^ TyxafiH t s m a s it (patina X3A3H y^aa o p ch o oc y ji xaMaapaH hjkwji y p n a i i k oa o op TOflopxoHJDK SaitcaH. Tyxa fljiSa ji f ls sp x t3MA3TT M epA g TaBaH yn,aa, e H sr ynaa opcoH 6aftxafl (eM H ex 5 S h th h h K ofloop ) g ts m a s it s a 25 6 h t, e TSMflarre/i TaBaH 6h t maapnaHa. XapsB 6ha xyBbcax yp rra ft KOflbir am nrjiaxflaa xaM riiifH o jioh o p c o H TSM flsrT H iir xaM rHHH 6orH H O K o flo o p , xaM rHHH u e e H o p co H T3M fl3rrH iir xaM raitH ypT k oa o op HJi3pxHiiJi63Ji <J>aiiJibir yjiaM c a t a maxax
Sojiho.
XyBbcax yprraii KOAbir rapraH aBax xaji6ap aprbiH Hsr Hb eproTreceH moa amnrjiaaar. Ep Hb m anraaTait T3MA3rnilir aryyjiax flypbiH M3fl33Jijinftr m rajiaaji 3aHrHJiaaTaft flypHH eprexrecoH Mofloop koahhjdk Sojiho . G epeep X3ji6 sji yancsH 3aHrHJiaaHaac Tyxatin rajiaaa sanrHJiaaHji xypsx 3aM Hb flaBTar/marytf ynpaac raAaaA 3anrnJiaa 6yp Hb H3r TSMflarTHiir TOAopxoftjDK 'lajmar. /Kh u i33ji63ji 18.2 —p 3ypraap 5 HJiraaraH T3Mfl3mmr k o a h m o x xoep HH3HH eproTreceH MOflur y3yyjui33.
ra x koaojiho. 3 h s U1HH33P yycrscsH koaoo M3A33JWHftr maxaxaA auiHniana. 3ChIII39Ji63JI inaxax M3A33JI3.il hb:
AAABBBCCE FGGGGGHH Z Z
r e x ererflceH 6oji tsm a s it 6ypHftr xaprajraax 5 6h t koaoop cojihh 20*5=100 6h t uyBaar (20*8=160 6hthhh opoH#) yycr3H3. Yyec3H Shthhh iiyBaar hb HaiiM HaftMaap Sy/ran/ian xapraji3ax ep re ireceH a s c i x TSMAsrxyyAssp co jib x xaflxajraa. HaftMaap 6y.ii3r.n3x ye# xaMXHiiH cyyjraiftH xscsrr HaftMaH 6h t Ayyprax naflaxxyft 6a ftx 6ojiho. 3 h s toxhoaaoaa axiiax 6nTyyAHftr 0 —oop AYYPrsx HaftMaH 6h t 6ojiroH xaArajiax 6a xo th ssh 6h t hsmcsh M3A33JMHftr rnaxcaH (JjaftjiA xaBcaprax uiaapAJiaraTaft.
T3C3H MaCCHBblH TyxaHH T3M A3TTHPiH KOAOA XapraJI3aX HHJ3,eKCT3H 3JieMeHT3A xajirajTHa. Tsm jis ityy^w h h AaBTajrrbirToojioH f r e q MaccHBT xa^rajiax koamh X3CrHHT AOOp Y3YYJIJ133.
ch ar *s = "AAABBBCCDEFGGGGGHHZZ";
f o r ( j - 0 ; j<2 5 6 ; j+ + ) f r e q [ j ] = 0;3=0;w h ile (c h = s [ j+ + 3) f r e q [c h ]+ + ;
flapaaHHHH ajixaMA A33px f r e q MaccHBbiH (0-33C HJiraaTaw) ererAOA A33P \ha3cji3h Huffman KOAbir rapraH aBax ep reT receH m oaw t 6aHryyjiAar. 3 h s OprOTreceH MOAbir Huf fman MOA T3H3. 18.3 —P 3ypraap A33px s T3MA3IT MepA
xapraji3ax m oah t Y3YYJIJT33-
OpreTreceH m oahh raAaaA 3aH rnjiaa 6y p H3r T3MA3IT3A xapraji3ax 6a TyxaiiH T3MA3TTHHH KOAblH ypT Hb raAaaA 3aHrHJiaaHbI 6ailpjiax TYBIHHHT33P TPAOPXOHAOTAOHO. XapHH T3MA3ITHHH koa Hb yhacsh 3aHTHJiaaHaac raAaaA saHnuiaa xypsx 3aMaap toaopxohjiotaox 6a 3YYH cajiaaraap opboji 0 ,6apyyH dajraaraap opboji 1 tscsh yrrbir aBHa. >Khiu33Ji63JI d ts m a s ith h h koawt Yhacsh 3aHrHJiaaHaac 6apyyh, 6apyyn, 3yyn, 6apyyn, 3yyn rscsH 3aMaac 11010 ra^K rapraH aBHa. OpreTreceH moaoop toaopxohjiox t3MA3ITYYA KOAbir Aoop
Y3YYJIJI33-
101 D= 11010 G= 01B= 111 E= 11011 H=001C'= 100 F= i i o o 2= 000
254
0oua utaxcix
root
• *\ 2 0
3ypar 18.3. AAABBBCCDEFGGGGGHHZZ ererflJiMMH Huffman m o a
XspsB AMap Har k oa ererAB eji yhacsh 3aHrHJiaaHaac y r koaoa xa p ra jm x 3aMaap jraac raAaaA 3aHrwjiaaHA xypcHssp AMap T3ma3it 6ojioxli r toiiopxomjuk 6ojiho. 0 e p e e p X3Ji63Ji 3H3 MOAur auiHniaH KOA^HJiorAcoH (uiaxarAcaH) ererAnur 3adnaH sx (j>aHJibir rapraH aB4 6ojiho.
3 p 3 M 6 s T A a p a a jia ji h i . t s m a s it y YA w h h A a B T a jrm r a ry y jia x a a c raA H a e p r e T r c e H
m o a h h 6aMp;rajibir (H t r e e MaccHBT 6aftp/iax HHAeKCHHr) uyr aryyjiax ywap t y y h a xa flraJ ia rA ax i t e m 6 Y T iiH H r A o o p Y 3 Y y ic H 3 3 p T O A o p xo ib rb e .
s t r u c t i t e m (
u n s i g n e d l o n g f r e q ;
i n t p t r ;
i t e m ( ) { }
i t e m ( u n s i g n e d l o n g f , i n t p ) : f r e q ( f ) , p t r ( p ) ( )
i n t o p e r a t o r > ( i t e m & x ) ( r e t u r n f r e q < x . f r e q ; }
} ;
,0,33px item 6YTH3A AaXHH TO/IO pXO ft JtO I'/ICOH int operator> ( ) (pyHKU Hb
TsMAsrrYYAHHHAaBTajiTHr i n s e r t o 4>yHKU33p3p3M63TAapaajiajiA opyyjiax ariiiHHA Nev/Node () 4>yHKLi33p yr T3MA3rTMHr epreTreceH m o a o h a opyyjix, tyyhhh moaoha 6afipjiax HHAeKCHHr sp3M6sT AapaaaajiA AaBTajiTUH xaMT xaAraima. Baftryy/iam cjjyHKH asx sxhhh f o r AaBTajrraap 3H3 yiiJiASJi X H iir fl3X
6a yp AYHr 18.4 —p 3ypraap Y3ypJi33. 9h3 yeA H t r e e Hb seuxen (cajianraa)
257
Byjae IS
naBiHyy/i 6yioy TSMflarryYflHftr xaflrajican raAaaA 3aHrHJiaanyyAbir aryyjiax 6a xapHH 3P3m63t Aapaajian hb tsm asit 6 yphhh jiaBTajiT 6ojioh yr TSMAsrHiir aryyjiax m o ahh 3aHnuiaar 3aax saanibir aryyjiHa.
3 p3M6aT flapaananfreq ptr freq ptr
□ ZL1
- | D I L RorCh
Moahw HaBHyyfl
3 y p a r 1 8 .4 . 3 p 3M6 sT fla p a a n n b iH aHXHbi T en aB
G proTreceH MOAtrr 6aiiryyjiax ajiropHTMaac xapaxaA xaMrniiH 6am AaBTajirratt ts m a s it Hb m oahh xaMrniiH i yh a opox 6a tyyhh h H u f f m a n ki >/i xaMrHHH ypT 6ojiho.
int main () {cout « "Huffman code.\n"; unsigned long freq[256]; unsigned char ch; int j , k, b;c h a r * s * "A A A B B B C C D E F G G G G G H H Z Z " ;
E\A3a 18
fo r ( j= 6 ; j<256; j++) f r e q [ j ] = 0 ; j= 0 ;while <ch=s[j++]) fre q [c h ]++;
HuffmanTree T r ( f r e q ) ;
CodeTable t [256 ];for (in t i=0; i<256; i++) t [ i ] .'code « t [ i ] . l e n = 0 ;
UiaxcaH cjjafiiaa 6yuaa>K 3aAJiax yeA Huffman moa JiiaapAJiaraTait Huffman MOA Hb 3X $aHJIA OPOAUCOH T3MA3TTYYAHHH AaBTajrraac yyccsH y ra p T3xMA3ITYYAHhh AaBTajrr 6yioy freq MaccHBbir M3A3X 6aiixaA xanrajrrraii. HHM33C uiaxarAcan c^aii/i ts m a s h y y w h h AaBTajiT 6yioy freq MaccHBbir moh arcy/ix 6a h Aar. 3 h 3 ajiropHTMbir aummaH cj)aHJi rnaxax 6ojioh 3aAJiax x h mad nporpaMMbir 3oxHoriHHH bb6 xyyAcaac y33>K 6 ojiho.
ererAJiHHH Sy t s iit s h aAHJixaH axHJUiax 6 ereeA 3apHM H3r k o a h h xiDKHr HJiraar TanjiGapjian. Y y h a : (1 ) PQ AapaajiajiA MaccHBbiH (0 h h a ck c tsh sjieMeHTHHH xaMT) 6yx 3JieMeHTHHr amwrjiaHa, (2 ) Huffman ajiropHTMlih ite m 6yTU3A 3oxHuyyjiax 3opHJiroop k o a h h 3apwM eepq jio jiT x h h i^ c s h . Huffman ajiropHTMbIH item 6yTU33p T0A0pX0HJ10rA0X oreTAOJI Hb 3p3M63T AapaajiajiA xaMrHHH 6ara yrraTaii 3JieMeHT sxsjdk: rapax Saiijyiaap 6aMpjiax HiaapAJiaraTan. Tsb*! pq Hb HMarr xaM raiiH h x yrraTaH Hb 3X3JDK rapaxaap a^KHJUiaAar. H h m 33C 6h a s tru c t item { . . . } 6ytu,3A AaxHH T0A0 px0 HJi0rAC0H o p e ra to r> ( ) <j)yHKU,HHr TOAOpXOHJIOH, XapHH PQ KJiaCCblH 6yx THUIYYH 4>yhkuyy^ fl3x xapbu yy jiax yHW JiHHr i t e m TepejrrsH xo ep ererAJiH iir xa p b u yy jia xa A 30pH yjiaH > o n e p a T o p o o p cojibac eep4 H J iceH . 3 h s eepHJieJiTHHr t h u iy y h (Jjy h k u y y a h h h k o ao a to a xapaap oh u jioh y3YYJUI33-
Tsbh 3H3 eep4JioJiTYYA Hb heap 6y ioy 3p3M63T AapaajuibiH a^ouuiax ropHM HMapH eep q jio jiT opyyjiaxryH . G e p e e p X3Ji63Ji pq 3P3m 6st AapaajuibiH rem ove ( ) (J)yHKU Hb ite m TepeJiT3H e re rA fle ec 6ycaA to xh o jia o jia HMarr xaMrHHH hx yrrb ir rapraHa. X3p3B item S y tijsa 6 yx xapbuyyjiax onepaTopbir AaxHH T0A0px0 HJiB0 Ji 11 —p 6 yJirHHH heap KJiaccbiH th iiiy y h 4>yHKUi3A eepq jio jiT xhhxtyh myyA amnrjia^K 6 ojiho.
pq KJiaccHr 3arBap KJiaccaap to aopxohjichoop yh ac sh ererAJiHHH repjiYYA33c raAHa X3p3rJi3r4HHH to ao pxoh jico h TepejiA aaouuiaHa. Tyxa iiji6a ji Huffman ajiropHTMA item GyniHHr xaAraJiaxaA auunrJiacaH. pq KJiaccur Aoop y3YYJUI33-
tem p la te c c la s s Type> c la s s PQ {
Type * a r ra y ;in t M axS ize, N e l , ChunkSize; v o id a d ju s tH O ;
p u b l ic :P Q (in t s i z e , in t in c r= 1 0 ) f M axSize — s i z e ;
a r ra y = new T y p e [M a x S iz e ];N el = 0; ChunkSize = in c r ;
}~PQ( ) { d e l e t e [ ] a r r a y ; } v o id in s e r t (T y p e i t e m );Type rem ove ( ) ;in t empty ( ) { r e tu rn N e l =-• 0; }
} ;
pq 3p3M63T Aapaajiaji X3MX33 xsTpsx 6ypT aBTOMaraap e e p e e e e p n iire e ChunkSize X3M3K33r33p e p re r re x iiaABapTan. 3/ieMeHTopyyjiax 6 yp i 3p3M63T AapaajuibiH X3M>K33r uiajiraHa. 9p3M63T AapaajiajiA opyyjiax yHJiAJiniir Aapaax
261
B y ro r 19
FpacJ)
E hahhh 6o a h t aMbpaJi A33P 06'beKTyyA, T3Ar33p xoopoHAbiH xoji6o o roop To.aopxoHJioracoH o jioh acyyzyiyy,n 6aiiaar. TyxaHJi6aji x o t xoopoHA o m o ijo o p aajiax aajuibir X3JEk 6ojiho. 3 h 3 toxh o jiao jia xaMrHHH G oh iho 3aMaap H3r xo too c h o to o a x o to a 6ycaA 6yx xo iyyAb ir AaMXHH ohhx acyy^aji TaBHr#a>K 6o jih o. M ara^ryH xaMTHHH 6orHHo 3aMaac h jiyy xaMrwifH xhma 3aMbir h toaopxoh jiox waapAJiara rapq 6o jio x k>m.
0 e p H3I* TOXHOJIAOJI Hb TOflOpXOH TOOHbl aJKJIblT TOAOpXOH TOOHbl ryHipTrsrHASA xyBaapHJiax “ axHJi TejieBJie/iTHHH” acyyAan daiix. 6ojiho. Mqh T e rc re^ e r -T eJ ie B T MauiHHbi axHJiJiax ro p H M u r to a o p x o h jio x , uaxHJiraaH X3JIX33H A3X xo;i6or^coH xoep 3JieMeHTHHr toaopxoh jiox 33p3r o jioh acyyjmyyA xaMaapax iom.
Mhm TopjiHHH acyyzyibir 3arBap4Jiax MaTeMaxHK o6T>eKTbir epacp rsH3. 3 h 3 6yJir33p uiyraMaH 6hiii ereiwiHHH 6y tu h h h H3r 6ojiox rpacj), tyyha xhhtasx 3apHM ariropHTMyyabiH Tyxan cy/max 6ojiho.
Ep Hb OMHOX 6yJirYYfl3fl 6 h a xoji6ooct xarcaaflT, moa, to re re ji o r- t o jiobt MaiHMH 33PT33P rpa(})bIH TyXaH OHJITOJITTOH aJIb X3AHHH yMHpn 6ailcaH.
rpa(j)bin yh^c3H yxar/jaxyyH
Tpa(J) Hb opou 6o jio h upM aeyyd jsc 6y p M 3r. O p ow r 3apHM to x h o jia o jia 3aHrHJiaa rsac H3pji3ac 6ojiox 6ereeja, xoep opow r xo ji6ocoh xoji6oocbir npMsr T3A3r. HpM3T33p x o ji6 o ta co h xoep 3aHrHJiaar xepu i 3am unaa rsHS. 9 h 3 6 y ji3 it op o ii 6a aaHTHJiaa, xo ji6 ooc 6a HpM3r ts c sh xsJUisrYYAHHr xapHJiuaH opjiyyjiaH a iim n iax 6o jih o . 19.1 —p 3ypraap H3r rpa(J)biH xoep HJiraaTaii AYPCJi3JIHwr y s y y ^ 33* 3 yp a rr ysyy^csh rpa(J)Hb a , b, c , d, e, f , g , h, i tscsh opoHHyyA 6a ag, ab, ac , ed, fd , h i , f e , a f , g e tscsh HpM3ryya33c to t to h o .
263
Bynsz 18
in s e r t ( ) <J)yHKU33p ryHU3Tr3H3.
te m p la te < c la s s Type> v o id PQ<Type>: : in s e r t (T y p e item ) {
in t i , j ;i f (N e l M axS ize ) {
Type *aO ld * a r ra y ;a r ra y = new T yp e [M axS ize += C h u n kS ize ]; f o r ( i= 0 ; i< N e l ; i+ + ) a r r a y [ i ] = a O ld f i ] ; d e l e t e d aO ld ;
}i = N e l+ + ;w h ile ( i > 0 BcSc item > a r r a y [ ( i - 1 ) / 2 ] ) {
a r r a y [ i ] = a r r a y [ ( i - 1 ) / 2 ] ; i = ( i - l ) / 2 ;}a r r a y [ i ] = item ;
tem p la te < c la s s Type>Type PQ<Type>: : rem ove ( ) {
Type item = a r r a y [0 ] ; a r r a y [0 ] = a r r a y [ - - N e l ] ; a d ju stH O ; r e tu rn item ;
}
Xtapaax <J)yHKIi;33p ad ju s tH ( ) (fcyHKUHHH KOflHr Y3YYJU133-
tem p la te < c la s s Type> v o id PQ<Type>: :a d ju s tH O {
in t i = 0 , j ;Type item = a r r a y [0 ] ;w h ile ( ( j « 2 * i + 1) < N e l) {
i f ( j < N e l - 1 && a r r a y [ j+ 1 ] > a r r a y t j ] ) j+ + ; i f ( a r r a y [ j ]> i t e m ) {
a r ra y [ i ] = a r ra y [ j ] ; i * j ;
}e l s e b rea k ;
}a r r a y [ i ] — item ;
}
^ 33px pq KJiaccHr 11 —p 6yji3 IT toaop xoh jicoh Heap KJiaccTaii xapbuyyjDK xap. 3p3M03T M p aa ju itir heap auiHrjiaH hsb tpyyjichssp s jicm ch t opyyjiax 6o jioh rapraxa^ o ( lo g N ) y#OT3Ji xnHraaar.
262
I'piup
r p a ( J ) w r H J i a p x H H J i a x
rp a<|>B ir n p o r p a M M a a p 6 o j i o B c p y y j i a ; i T x h h x y e # x o e p T e p j i i i i i n a p r a
x s p s r a s j i s r . X a M r a J iH x a n 6 a p a p r a 6 o j i M a x p m ja a p u n a p x H i t o x io m . v
O PO H TO H rpa<J)I>ir V x V X 3M 5K 33T3H a M a x p n u a a p H / I3 pX H H J I3 X fl33 X 6 a y o p o H H y y / i hb x e p u i o p o i i ( x y H p M s r o p u iH H 6 a i iB a j i ) 6 o j i a [ x ] [ y ] —a y h s h
( 1 ) y r r a o j i f o x 6 a y r y i i t o x h o j i h o j i a xy/ ia jr ( 0 ) y r r a o j i r o A o r . a M a T p m iB ir x a p m
M arpH H , r a x H 3 p ji3 f l3 r . 1 9 .2 — p s y p r a a p 19 .1 — p 3 y p a r r Y 3 yyJ ic3 H rpat}>BiH
x e p iu M a T p n u ,B ir ' P Y Y ^ 3 3 -
A B C D E F G H I A 1 1 1 Q . O i l - 0 0
I 1 1 0 0 0 0: 0 0 0 C 3 0 1 0 0 0 0 0 0
D 0 0 0 1 1 1 0 0 0
B 0 0 0 1 1 1 1 0 0 F 1 0 O 1 1 1 O O Q
G i o o o i o i o 0,. . r ,H 0 0 0 0 0 0 0 1 11 0 0 0 0 0 0 0 1 1
3 y p a r 19 .2 . Xepui MaTpnq
r pa(f)BiHx 6a y opoiinyy/1 x ep iu 6o jra [ x ) f y ] 6 a a [ y ] [ x ] h b h x h j i x s h I r s c s H
yiTBir aBHa. M en opo ii hb e ep e e eepT3iir33 xepui op o ii reac y33H a [ x j [ x ) — A 1 T3C3H yrra o j it o c o h 6aiiHa. 3apHM xspsraraamni xyBBA 0 yrra ojirox hb h j iy y ToxHpoMXToii 6aiiflar.
rpacj3biH xepui MaTpHua# ererflJiHiir opyy/iaxaaa MaTpHUbiH 3JieMeHT 6 y p h h h
yrrur uiyyA opyyjrac era 6 o j i h o . F 3 b ii 3H 3 h b CHHiipsr rpacpBiH xyBtA
TOXHpoMac Myyrafi i o m . Y y h h h opoHA iiiyya rpacji x3Ji63p33p h b opyyji*
6o j i h o . G e p e e p X3ji6 3 ji opoteyyflBiH H 3p , HpM sraiir opyyjiaH xepui
MaTpHHBir YYCT3H3. Opoiir H3p33p opyyjiax t o x h o jia o jia H3pHirr xepm
MaTpHUBiHxapraJi3axHHfleKCTxepBYYJi3xniaapflJiaraTaii. 3 h s xepBYY-^MTwrr
opottH H 3p33p hash xycHsrr sc bsji xoepThiH m o a aiuurJiaH xapraji3ax;
HHfleKCHiir toAopxoiiJiac 6 o j i h o . X a p H H aapaax j k h i h s s h s x ;m 6ap LM ax
3opHJiroop opofiH H s p m r ycresp (t o m aacKHr ycsr j d k h j ix s h ) h j is p x h h jd k
in d x ( ) 4>yHKHHiiH lycjiaMXTaiiraap MaccHBtiH xapriraax HH/jeKCHiir rapraH
aBHa. i n d x ( ) (JiyHKH h b y c n n m a s c i i KOABir aumniaH xapraji3ax HHAeiccHHr
raprax ynpaac opoiiA 3eBxeH a —aac sxnrax flapaajicuw ycryyAHiir aiuwrjiaHa.
5K h U133Ji63JI OpoiiH TOO 9 T3B3JI A-1 T3C3H eceH yCTYYflSSP OpOHT
Tonopxoii jioopoii.
265
By'.isa 19
(BKD
3 y p a r 1 9 . 1 . Har rpacfjbiH nnraaTaw xoep flYPCJ1an
Fpa4>wH x opoiirooc y opoft xypsx jcim hb a aM X H H rapax opoftHyyabiH
nvBaaraap To.aopxoHJiorztaor. >Khih33Ji63JI b opoiirooc g opoiiji xypsx H3r
3aM 6o;r b a f e g T33K SaiiHa. X sp sB rpacJibiH 3aHrroiaa 6yp33c 6yca# 3anrHJiaa
v opoirroii, e npM3rT3ii rpa<{)bir g = ( v , e ) tsjk TOAopxoiiJi'be. e HpMaraiiH
TOO Hb 0 —OOC V ( V - l ) / 2 —HHH XOOpOHA 6aifX SOJIOMXTOH. UpMSTHMH
rooroop rpacjjbir cuupse scbsji m em rsac 'roAopxoiiJix 6ojiho. XspsB viogv —
33c ueexeH HpMsrreit 6oji cniipsr rpac|> rsH3. 3 h a apnrAaac 6yit oftjirojrryyA
Hb Huaji3M\u rpacjjaA xaMaapax iom. XspsB x opoiirooc y opoiiA xypsx HpMsr
Hb y —33c x —a xypax HpMarssc HJiraaTaii 6oji hhtjisjit rpa(}) T3H3. Mhtjisjit
rpacJ)Hr 3apHM toxhojiaojia cyjiaras r s x H3pjt3A3r. M e H opoii xoopoHAbiH
hair scbsjt yraiirr Hjispxniijisx 6yx3Ji tooh yrrbir (x h h ) HpMsryyASA ojiroAor.
MiiM rpacpbir x h h t s h rpa4> tshs.
264
Tpcup
void adjlist() J
int j, x, y; char vl, v2; struct node *t;cout « " Vertex number: ”; c i n » V;
cout « "Edge number: cin » E;
for (j •= Of j < V; j++) adj[j] = NULL;
for (j = 0; j < E; j++) {
cout « " Input edge (x y ) : cin » vl » v2;
x “ indx(vl); y •» indx(v2);
t = n e w node;
t - > v = x; t- > n e x t = adj[y]; adjfy] = t;
t *» n e w node;
t - > v - y; t ->next = a d j ( x ] ; adj[x] = t;
}}
XspsB npM3rYYflMMr a g , a b , a c , e d , f d , h i , f e , a f , g e recall flapaa;uiaap opyy;i6arc flsspx adj list o cJjyHKuasp 19.3 —p 3yparr Y' YYnc9H *arcaajirYYCH3.
3ypar 19.3. Xepm >Karcaa/ir
H u n i a n r Y H rpa4>bra xyobfl H p M a r 6 y p xepni xarcaajrrafl m s h (xepiu M a x p m j
iim r) x o e p yflaa xoxhojiaoho. Gepeep x m S m x 6a y x e p m 3 a H raaaaHyyflHH
xyBbfl x 3aHrmiaaHbi xepm 3aHranaaHyyflbiH xarcaanTafl y 3aHrmiaa, y 3 a H r H ^ a a H b i xepm 3aHrHJiaaHyyflbiH *arcaajiTafl x a a m H J i a a Tyc Tyc TOXHOJiflOHO. M H r 3 C H 3 3 p H M a p 3aHrHflaaHyyfl TyxaftH 3 a HrHJiaaHM xepm saHFH/iaa 6oJioxbir xnji6apxaH MSflax 6oflaor.
T pafjibir x e p m xarcaajrraap HJiapxHtoax yefl npM3ryYflHHr opyyflax flapaajian
6aftp;iaJi TOflopxoiiJiorflOHo. M h m a MpMsryyfl x e p m xarcaajrrafl o p c o H
Ey/rn 19
int a[maxV][maxV] ;
int V, E;
v o i d adjmatrix() (
int j, x, y;
char vl, v2;
c out « " Vertex number: cin » V;
c out « "Edge number: "; cin » E;
for (x = 0; x < V; x++)
f or (y = 0 ; y < V; y++) a[x] tyj = 0;
for (x * 0; x < V; x++) $[x][x] = 1;
for (j = 0; j < E; ■ j++) {,
c out « "Input edge (x y ) : "; cin » vl » v2;
x = indx(vl); y = indx(v2)j
a [x] [y] = 1; a[y][x] = 1;
}}
int i h dxfchar ch) {
r eturn (toupper (ch)-65) ,-
i \ ' , ' S H IJ fe s p x <i>yHKU,33p H p M 3 rH H r o p y y j ia x f la a x o e p o p o i iH x o o p o H f l x o o c o h 3 a ft ra a p
Tycraapjiax erae.
3 iif l rpa(})Hr yHiuHrMAa/i oHjiroMacroii, ajiropMTMyyflbir Tato6apJiax 6 o j io h
xypumxafl xan6ap 6aiuirax yyahssc epflHHH MaccHB auiHniaH hsbtpyyJWss. XapHH yHuiHrq Ta eepHHH xsparjisaHflas ToxnpyyjiaH rpacj)i>ir KJiacc auiHniaH ererflJiMta xhhcbsp Tepjieep xoflopxoitiDK 6 o j ih o .
X e p m M a x p m j H b r p a c j jb ir H J is p x H H J ia x a fl M a u i s h t h h h , X fu i6 a p 6 o j io b 'I
c m { i par rpacJib iH x y B b f l h x s h x 3 J ie M e n iY Y f l 0 6 a f t f la r . H h m s s c h h x t 6 h h i
rpac| )L ir x a r c a a j r r a u m r jr a n m i s p x H i t o x H i h j iy y t o x h p o m x t o h 6 a i i f la r . 3 h a
6 h a rp a tJ jH r H J iapxH H J isx x o e p flax i> a p r a x e p m a c a r c a a j n w aBH Y 3 3 x 6 o j ih o .
3 h 3 a p r a a p r p a 4 > u r H J i3p xH H JO x fl3 3 H a r x s m x s s c t M a c c H B a a p o p o f t H y y f lu r
T O f lo p x o H J io x 6 a M a c c H B H H 3 J ie M e H T ( o p o i l ) 6 y p e e p H H H x e p m o p o f t r
a r y y n c a H x c a r c a a j iT u r 3 a a H a . F p a c j ju n x e p m x a r c a a j i x u r f la p a a x k o a w h
X3Cr33p Y3YYJW33.
s truct n o d e (
int v;
node *next;
>;i n t V , E ;
n o d e * a d j [ m a x V ) ;
266
B yjw t 19
iiapaajrjiaapaa ajiropHTMii 6o;roBcpyyjianmar.
rpacf>bir x a rc a a jn a a p HJi3pxHH/icH33p 3apHM yftJiAAHiir ryH ij3TT3X3fl xyhupsjitsh Gaiiaar. T vxaHJiGaJi x opoiir ycrraxnaa tyyhhh xepin opoMHyynbir aryyjiax xarcaajrrbir ycTrax hb xanrajiTryH iom. Tpaq^biH HMap H3r oponr
vcTrax iiaa ty y h h xoji6ohicoh 6yx H p M srY YO TH r ycTrax ecTOH y n n p x 3aHniJiaaHbi xepui 3aHrHJiaaHyyiibiH ^KarcaaJTTaac x 3aHrHJiaar moh ycxrax
ecToii.
MHrjT3JiT 6ojioh XHHT3H rpa(})bir MeH MaccHB 6a xarcaajiTaap hjispxhhjdk 6 o jih o . MHrjisjTT rpacJ)HH xyBb# n p M sr Hb 3eB xeH raHU y#aa TOJOpXOHJIOraOHO. rpa(J)bIH x opow rooc y OpOH pyy 4HrJI3JIT3H HpM3rHHr xepui MaTpHiibiH a [ x ] [y ] — x 1 yrra ojirox scbsji x opoiiH xeprn acarcaajrra# v op o fir opyyjiax 6aHimaap HJi3pxHHJiH3. >Khht3H rpa(J)biH xyBbfl 0 6a I rscsH y r ra H oponn x i iH r h jibpxhhjisx 6yx3Ji t o o ojiroac to^opxoh jiho .
3HA 6HA v i s i t e d T3C3H H3rX3WDK33CTMaCCHBaap TyxaHH 3aHrHJiaaHA ohcoh scsxH r TOAopxoHJiox 6ojiho. MaccHBHH 3JieMeHTyyA3A 0 13C3H aHXHH yrra o jirox 6a HMap H3r op o if ohboji v i s i t e d MaccHBHH xapraji3ax sjicmchthhh yrra 1 6ojiho .
floopx search ( ) <J)yHKU,HHH 3XHHH AaBTaJITaap v i s i t e d MaccHBT aHXHH yiTa ojiroHo. Y yhhh Aapaa v i s i t e d [ i ] -hh h yrraap TyxaHH 3aHrHJiaaHA ohcoh 3C3XHiir majiraH, oqooryn toxhojiaojia d fs ( ) 4>yHKHHHr AYYAHa.
v o id s e a rc h ( ) { in t i ;f o r (i^ O ; i< V ; i+ + ) v i s i t e d [ i ] » 0; f o r ( i= 0 ; i< V ; i+ + )
i f ( . ' v i s i t e d [ i ] ) d f s ( i ) ;}
ryHHH XaHJITblH a/ITOpHTMHr d f S ( ) peKypCT 4>yHKU,33p Y3YYJI3X 6ojiho. d f S ( )
cfjyHKH, Hb rpa4>HH xoji6 orAcoH 6yx 3aHrHJiaaHA omo. Xsp3B rpacJ)biH 6yx 3aHTHJiaaxoji6orAcoH 6oji d s f () cJjyHKii; s e a r c h () cJjyHKiissc 30BX0H H3r yaaa ji AYYAarAaHa. 3ha33c 6ha rpa4> xsabh canaHrHA A3A xscryyAssc Torroxbir
ohootyh 3aHrMjraaHii o hh o . JJapaa hb ohcoh 3aHTHJiaaHbixaa xepui oqooryH
3aHrmiaaHH rsx m 3T4hji3h ' rYHiX3TT3H3. X sp sB HMap H3r 3aHrHJiaaHbi 6yx
xepui 3aHrHJiaaHK oiico h 6aft»an yr 3aHrHJiaarw xyprecsH eM H ex 3aHrajiaaHA
6yuaac ohhh 6yca,i xep m 3aHrHJiaaHyyn;bir uiajirax 6aHjyiaap rp&4>£ffl 6yx
3aHrujiaaHji o hh x 6o jih o . 3 h 3 npou,eccbir pexypc auiHTJiaH x*ui6apxaH
u ih h u s^c 6o;ih o .
F yhiih xaHJiTbiH aJiropHTM bir xepui xarcaajiTbiH xyBb^^apaax pejcypcr df s () 4)VHKIXHHH KOjJOOp Y3YY-rrJI33-
v o i d d f s ( i n t k) { n o d e * t ;
v i s i t e d [ k ] = 1 ;
f o r ( t = a d j [ k ] ; t ; t = t - > n e x t )
i f ( ! v i s i t e d [ t - > v ] ) d f s ( t - > v )
j
Xl33px d f s () (J)VHKU33p rpacfjbiH opoHHyyaa# ohhx flapaajran Hb opojitooc uiyyn majnraajiHa. Gepeep X3Ji63Ji xepui xarcaaJiTbm sxsha 6yh opoH# 3X3;r>K xaimaHa. )KHUi33Ji63Ji 19.1 —p 3yparr Y3YYJIC3H rpa<|)biH upMsrYYZlHHr ag, ab, Ac, ED, FD, hi, fe, af, ge T3C3H ^apaajmaap opyyjiaH 19.3 —p 3yparr Y3YYJTC3H xepui >KarcaajiTbir 6 hh 6ojirocoH T0 XH0Jm0Jm d f s () c yHKii, Hb opoifHyyziaii a f e g d c b h i T3C3H /iapaajmaap ohho . 20.1 —p 3ypraap rpa4)biH opoiiHyyaan omcoh 3aMbir t o r xapaap h yPCJT3H Y3Y\,JIJI33-
v o id d fs _ n o n r ( in t k) { node * t ; s ta c k .p u s h (k ); w h i l e ( ! s ta c k .em p ty ( ) ) {
stack .pop (k ); v is ite d [k ] = 1 ; fo r (t= a d j[k ]; t ; t=t->next)
i f # ( ! v is i t e d [t -> v ] ) { stack .push (t->v ); v is ite d [t -> v ] = - 1 ;
}}
}
^ s s p x d f s nonr () 4>yHKii;HHH a o to o a AaBTajrraap k opoHH xepui opoHHyyubir cTeicr xaArajiax 6a v i s i t e d MaccHBHH xapraji3ax 3JieMeHT3A — 1 yrra o jir o x 6 aiiH a. 3 h s Hb c t c k t x a A ra jia rA a x 6 an raa o p o iiA o q o o r y i i r3 A rn iir HJi3pXHHJi3X 6a xapHH cTeK33c raprax yeA 1 ts c sh yrra o jiroH ryxaiiH opoiiA04JI00 T33C Y3H3.
C tck auiHrJiax 3H3 <J)yHKijHHH yp a yh Hb peKypcT 4>yHKU33c eep 6aHHa. XspsB 3aHrHJiaa 6ypHHH xepui xarcaajiryyA Aaxb opoiir ypByy Aapaajuiaap opyyji6aji 3H3 xoep (J>yHKU hhchji yp a yh a xypH3.
q u e u e . r e m o v e ( k ) ; v i s i t e d [ k ] = 1 ;
c o u t « d e i n d x ( k ) ;
f o r ( t = a d j [ k ] ; t ; t = t - > n e x t )
i f ( ! v i s i t e d [t - > v ] ) {
q u e u e . i n s e r t ( t - > v ) ;
v i s i t e d [ t - > v ] = - 1 ;
}}
}.
XaMrata sxsjrac ohhx opoiir 3XHHH tybhihh rsB3Ji tyyhhh xepui opotayyAbir Aapaa’iMHH tybhihh, xepm opohh xepni opoHHyyAbir rypaB Aaxt tybihhh T33K Y333K Sojiho. ,II,33pX bds () cj>yHKH Hb HHM HH3aap rpa(J)WH opoitayyAaA tybhihh TyBUiHHrssp o'tAor. )Khui33Ji63ji 20.1 —p 3yparraH hxhji HexneJiA bfs () 4>yHKH33p rpat})HH opoiiHyyAaA a f c b g e d h i tscsh Aapaaroiaap o<rax 6a 3aMtir 20.2 —p 3yparr toa xapaap Y3YY-M33.
(HMD
3ypar 20.2. TyBUiMHrMMH xaCinT
Fpacjj Hb xoJi6orAcoH rpacj) 6aiiBaJi ryuHir 6o jioh TyBinHHrHHH xaiim Hb rpa<|)biH 6 yx opoftA o'iho. 3h3 toxhoa50jia rpac})biH HpMsryyAUHr xoep Tope;m fiJiniH ais'i y33* 6o;iho. Yyhhh h s t TepejiA d f s ( ) 6ojioh b f s ( )
272
Fpmpaap zyitx apzyyd
x a ft j iT a a p r p a c j jt in o p o i iH y y f la f l oh coh (2 0 .1 6a 20.2 —p 3ypryy,aaa t o a xapaap
3 y p a r flc a H ) H p M a ry y n , He r e e xacarr yjiflcaH apMsryyflMiir 6arraa>K 6o;iho.
r y h h h 6 o j i o h t y b i u h h t h h h xaHjrraap Toflopxoiiaorflox HpMsryy/tHfa rpacjiuH
6yx opoiir xoji6 o c o h m o a 6aiiHa.
273
E yJ i3 r2 1
) K h h t 3 h rpacj)
3apHM SoflnorHH xyBBH rpa<J)HH HpM3ryYfl3A m h scbbji YHHftr Toflopxoftjiox 6yx3Ji to o h yTra o jitoh aum niax inaapipiaryyfl rap/tar. }Khui33ji63;i x o t XOOpOHflHH OHI'OUHbl aSUIJIMH rpai})HH HpM3r HB xoep XOTBIH XOOpOHflBIH HHCJisraiir T o flopxoH flox 6 a jkhh hb xoTyyflH H xoopoH flH H 3aftr T0A0px0HJiH0 . 21.1 —p 3ypraap acHHTSH HHrjraJiryii rpa<J)Bir Y3YYJW33-
Hhm TepjiHHH 6o#Jioryy,na# xaMrHHH 6ara yusjirssr xoflopxoii;rox acyy#aji rap'i Hpflsr. TyxatoSaji, “ nsr xo tooc H eree xo toa ohhx xaMrHHH 6oraHo 3aMHr ToflopxoflJiox” , “ 6yx opoiir xoji6ocoh xaMrHHH 6ara yHSJirsaTsft 3aMBir Toflopxoitjiox” 33psr acyynjiyyfl 6a f lx 6ojiho. 3 xhhh acyyzyiaap hihhusx 6ofljio ru r xaMrHHH 6orHHo 3aMBiH 6oanoro rs^sr 6oji aapaa>iHHH 6oflJiorBir MHHHMyM MOfl TOflopxoitJiox 6ofljioro rsH3. S h s m stto jish xchhtsh rpa^aap uiHiiflsrAsx ojioh 6ofljioryy/i 6 a f i f la r . Mhhhmym MOflurTOflopxoHJiox 6o;ioh xaMi'HHH 6orHHQ 3aMBir ojiox X3ji x3fl3H coHroflor ajiropHTMyya 6aHflar.
274
XuMtou ipa<p
3p3w633p xaiix apra
3h3 apra hb ryHHii 6 a TyBHiHHrHftH xa itaB iH aAHJi rpa<})BiH m oabh Toflopxo&wor. 9p3M633p xaiix apra hb >khht3h rpa<|)HH XMHrHim yrrBir 3p3 M63 60JH0H aurarjiaaar. ryHHH 6ojioh TYBUiHHraHH xaitera# CTeKT 6a flapaaromr am nraa*: 6aftcaH 6oji sha spsMSsx Aapaanumr amnraax 6ojiho. XspsB erenyraftH xsm jios 6 ara 6o.rc 3P3m6st AapaaroiBir xarcaajrraap 30XH0H 6aftryyjDtc 6ojiox 6a xapHH hx 6oji heap amnraax hb toxhponoktoh. 21.1 —p 3yparr Y3YYJIC3H x h h ts h rpa$HH xyBBA sp3M633p xaiix apraap yycsx MOABir21.2 —p 3ypraap Y3ypra3 3 .
9 p3 M63 3p xaiix aprur sspx xcHiussHHii xyBB# TaibiGap/iafl. Eha MHHHMyM MO^Bir Toaopxotoox ynnp xaMinliH 6ara jkhhtsht xaMTHHH eHAep 3p3M63T3it r s x \33\ 6a 3X3JDK 3p3M63T Aapaajuiaac rapHa. XspsB a opoftrooc sxsjiits rsac Y3B3J1 TyyHHiir 3P3m6st Aapaa/iajiA xhhhs. 3psM6sT Aapaajuiaac a opoftr rapraxnaa tyyh a ohcoh tsjk y33x 6eree/i tyyhhh xepm OTOoryii opoiiHyyABir 3P3m6st Aapaajian# xhhhs. XspsB xepm opoiiHyyABir xhhx ye# hxchji opoii 3P3 M63T flapaajiann 6attBaji ajiB 6ara jkhh tsh t hb xawranax 6ojiho. Tyxaiui6aji spsM6sT Aapaajuiaac a opoftr rapraafl tyyh hh xepm B: 1 , F :2, G: 6 tscsh opoMHyyaBir spsmShhh Okhhitihh) xaMT 3p3 M&3T AapaajiajiA xhhhs. Y ’/hhW Aapaa spsm6s t aapaajmaac rapax opo ii hb b opoii 6aiix 6ereeA TYYHH oicohb i (rapracHBi) Aapaa BopoiiH oh oo iyh xepm opoiiHyyABir spsm6 s t AapaanajiA xhMhs. a opoH b opoftH xepm opoii 6ojiobh a opoiiA aJiB xsahhh o ic o h y>iHp 6ycaA C : 1 , D :2 , E : 4 T3C3H opoiiHyyABir XHHHS. YyHHii Aapaa SPSM63T Aapaaraaac c opoii rapax 6a xepm opoiiHyyABir AapaajiariA xhHh3. C -hH h xoep xepm opoiiHH b opoiiA eMHe hb ohcoh 6a e opoii hb hjkh/i xwHTsiirssp AapaananA 6aftraa y ra p 3p3M63T AapaanajiA HMap H3r eepi/ioAA opoxryH. Zlapaa'iHiiH anxaMA 3P3m6st Aapaannaac d opo iir raprax 6a d opoiirooc E: 2 6a F: 1 xepm opoiiHyyABir xoji6ocoh HpMsrntiH hchh hb Aapaajiaji AaxB E: 4 6 a F :2 opoiiH x h h ts s c 6ara ynnp c o jib x opyyjiHa. SArssp npoueccbir
275
Eyjiaa 21
3P3M63T napaa jian xoo co h 6ojitoji x h h h s . 3p3M 633p xaMx ap raap 21.2 —p 3 y p a n rpacJ)biH m o a h t t o a o p x o h jio x o a a u ra rjia rA a x 3p3M 63TAapaaj ij il ih a ry y jirb ir 21.3 - p ay p a n a jixaM 6yp33p y3YY;u i3 3 -
r i ] ? f i g 2 F 10 * S 2 E 2
H 2 [E ]4 i ' I ] 4 2 B 2||fv|2 G 1 J 1 K * h i
A * J g j6 ® ] 6 P i 6 1 6 | |§ 6 JO 5 5 7J~ 2 ■jjjf 3 s 3 g j§
3ypar 21.3. 3p3M6aT flapaajia/i flaxb aryynra
3 p 3 M 6 3 3 p xaw x a p ra Hb c H H p s r rpacf)b iH m h h h m ym yH 3 J ir33T MOAfcir 0 ( (E+V) logV) aJIxaMA TOAOpXOHJIAOr.
K r u s k a l - i m n a p r a
rpac})biH m h h h m v m MOAbir ToziopxoHJTox 3H3 ap ra Hb HpM3IYYA33C XaMrHHH 6a ra S e re o ii AaBTaJiT a ry y jia a ry n 3aM bir c o h io h aBAar. O e p o e p X3Ji63Ji v o i ir (H 3 r 3JieMeHTT3H v u iH p x s r MOAbir) xoep xoepoop xo ji6 o h H 3 r m o a 6 oJ iroA or.
21.1 —p 3yparT y3YYJIC3H rpac[)biH xyBbA 3H3 a p ra r TaH Ji6apjian. XaM rHHH b x jis s a >khh Hb xaM rHHH 6ara 6 y io y 1 XHHT3H HpM3ryYA coHrorAOHo. 3 Ar33p HpM 3ryyA3A AaBTajix a ryy jica H H pM 3r G aftxryw y*rap 6yrA coHrorAOHo. fla p a a Hb 2 5KHHT3H HpMsryYAHHT co H ro x 6a bd, fe , f l 3 3 p s r AaBTajrr a ryy jica H wpM srYY^HHr o p x h h o . 3 h 3 6aHAAaap 6yx opoimyyA xoji6orAOH H3r m oa YY^r3A3r. Yyc3X m hhhm ym MOAbir 21.4 —p 3ypraap Y3YY™33*
276
> K u n m 3 u apacp
K r u s k a i-H iiH apraap rpacj)biH m hhhm ym MOAbir T O A o p x o i iJ 10*0 # ° ( e -Lo q e )
ajixaM m aapAarAAar.
X a M r H H H S o n iH O 3 a M
X aM rH H H G ortiH o aaM H H 6o/yioro Hb x h h t s # rpacf)biH X o e p o p ° H r xoji6o c o h
3aM yy^aac HpMdryyAHHH H H iin fe p h l x a M r # H 6ara 3^ M n r T O A opxon J iA or.
6 ycaA opoii 6 ypT xypsx xaMrHHH 6 othho, AaBTajiT a r yy jia x ry if 3aMbir To^opxoHJioxo^ MeH moa yycH3* Opoii 6 yptfHH xyBbA H jiraaT a ii MO# YYeA 3 r. )Khhi3 3 ;i6 3 Ji 21.5 —p 3 ypraac a 6 a m op o iiro o c 6 ycaA opoii/X QtrHX xaM rtrH H
6 ara saMyyAaac to ito x moayya HJiraaxaM 6 oii°Xbir x a p ^ 6 0 /1HO.
3ypar 21.5. A 6a M opoMHyyflaac 6ycafl opOMA ohmx xaivirn^n 6on4Ho 3aM
Y3C3H 3 p 3 M 6 s3 p x a iix a p ra T a ii t o c o o t s # 6 o jio b h 3 p 3 j^ 6 3 T A a p a a ji^ jm
x a A ra jia rA a x y r r a Hb T y x a iiH o p o i ir o o c * o p o iiA X y p a # s a M U H ypTbir TOAopxoHJiAor. 9 p3M 63T Aapaajm aac x opoH Toit x a M n * £ H o t ip o p o ii 3X3 juk
rapax 6a rap n 6 aaraa o p o iih x e p m o p o iiH yyfl x o p o ii K y p T s f l * 3aiiH xaM Taap
o p co H 6aiiBaji x o p o iiA ajib o iip y n w Hb xaArajiHa. T a p n 6 a iira a o p o i ih x
opoH xypTSJix 3aii a 33P x ep m opo iiH yyA aA & b XYP3X H p M a r y Y ^ M H x m h f T y c
Tyc H3M63JI x e p m o p o iw y yA a a c x o p o ii xyp9X 3 a ta y y ^ r a p H a -
a opoiiH xyBbA xaMraiiH 6othho 3aMyyAaap YYccsh 21.5 _ p 3yprniiH sxh nii rpa^ur xspxsH 6anryyjicaH ajixMur TaiiJi apJian. 3xji33J a opoiiH b, g xepm opoiiHyyAaac a opoiiA xaMrajHH oiip H*>B opoii y^Hp b opoiir coHroao. Aapaa Hb b opoiiH xepm c, d, e opoiiHyyAbir A °P°ft xypT3JIX 3aHHyya; Hb
E y / i a e 2 1
xaMT Aapaajia jiA opyy jraa . 3 h s m sttojish Aapaanaji xoocoh 6ojttoh AaBTaH xhhhs. 21.6 —p 3ypraap spsmSst AapaajuiHH aryyjirbir ajixaM ajixMaap Y 3 Y y ju i3 3 .
aiiropHTMHH unoDKHJirea (a n a ly s i s o f a lg o r it h m ) 3, 4-16 apH(J)MeTHK HJiapxHHJisJi (a r i t h m e t ic e x p r e s s io n ) 105-110, 131 AVL MOA (AVL t r e e ) 200-207
6eM6eJireH 3p3M63Ji3JrraftH apra (b u b b le s o r t ) 144-146
ra^aaA 3anrmiaa (e x t e r n a l node ) 129, 130, 253-260 rpa<$> (g r a p h ) 263-278 *13* ■
CH&par (s p a r s e ) 264, 266 HflTT (d en se ) 266
rypBaH 3JieMeHTHHH Me#HaH (m edian o f t h r e e ) 161 ryiitfPA MOA (c o m p le te t r e e ) 129, 137, 174, 199 ryHHft xaiiJiTHH apra (d ep th f i r s t s e a rc h ) 269-271
AaBTajrrraii xarcaajrr ( c i r c u l a r l i s t ) 82, 88-91 AaBTa/rraap koa^hjiox ( r u n - le n g t h e n co d in g ) 250-252 Aasxap Tercrejrr AapaaaaJi (d eq u e ) 120-124
Aasxap 3pryyJl3JiT (d o u b le r o t a t i o n ) 201-206 AaH 3prYYA3AT ( s i n g l e r o t a t io n ) 201-206 AapaaJian (q u eu e , F IFO ) 111-125, 136, 272
AOOAXH3raap ( lo w e r bound ) 10, 189-190 Aoopooc A33IH apra (bo ttom up a lg o r ith m ) 244 A33P33C AOOin apra (t o p down a lg o r ith m ) 244, 247-249 AYYP3H M°fl ( f u l l t r e e ) 129, 201
Ebkh hah h h ajiropHTM (E u c l id ’ s a lg o r it h m ) 40-41
acarcaairr ( l i s t ) 75-94, 101, 1175KarcaaJiTbir MaccHBaap HJispxHitox 85-87 xcarcaaJiTur xsbjisx 80 H3r xojiGooct xarcaanT 75-82 xoep xoji6ooct xarcaaiiT 83-85 3AeMeHT opyyjiax 78-80, 84 3JieMeHT ycrrax 81, 83 3p3M63JI3X 153 xaftjrr 192-193
>KHHT3it rpa<J) (w e ig h te d g ra p h ) 274-278
H ndeK c
3aap i ( p o i n t e r ) 4 7 -6 03aBcapBiH xaiuiT ( i n t e r p o l a t i o n s e a r c h ) 197 3arBapaap TSMflsrr M ep xaftx (p a t t e r n m a tc h in g ) 2 3 6 -2 4 3 3opHJin>iH moh ( d e c i s i o n t r e e ) 189
HHJieKcasp 3p3M03Jl3X apra 1 4 6 -1 4 9
MaccHB ( a r r a y ) 4 2 -7 4 , 85, 87, 91, 113, 136, 175, 2 6 6 MaTpim (m a t r i x )MOfl ( t r e e ) 1 2 7 -1 3 6 , 1 6 6 -1 8 0 , 189, 2 0 0 -2 1 2 , 245
3aMMH ypT (p a th l e n g t h ) 128, 129 en a ep 128 , 176, 189, 200 T3nn X3MT apra ( i n - o r d e r ) 135, 166, 173 ypBTax oh hx (p r e - o r d e r ) 135 XOijopH OliHX (p o s t - o r d e r ) 135 TYBIHHHF33P o lIHX ( l e v e l - o r d e r ) 1 3 5 -1 3 6
HaHMaH SspcHHH 6 ozw oro ( e i g t h Q u een ’ s p ro b le m ) 60 -6 5 3 p3 M6 3 Jl3 X apra (m e rg e s o r t ) 34, 1 8 3 -1 8 9
O T3Mfl3Dl3r33 (0 n o t a t i o n ) 7 -10oG ie icr xaimaJtfar nporpaMMMJia;i ( o b j e c t o r i e n t e d p ro g ra m m in g ) 1 7 -2 7o jio h ntlHYYHT ( p o ly n o m ia l ) 91 -9 4op jiyy jiax flyp3M (p r o d u c t io n , r e p la c e m e n t r u l e ) 245opyyjiaH 3P3m63JI3X apra ( i n s e r t i o n s o r t ) 1 4 2 -1 4 4 , 149
ereUUiHiiH XH#CB3p TepeJi ( a b s t r a c t d a ta t y p e ) 1 7 -2 7 epreTreraex MaccHB ( e x t e n d ib l e a r r a y ) 5 7 -6 0 epreTreceH moh ( e x t e n d e d t r e e ) 128, 253
peKvpc ( r e c u r s i o n ) 15, 2 8 -4 1 , 63, 103, 155, 157, 16 4 ,1 9 2 , 269 peKyppeHT TOM teo ( r e c u r r e n c e r e l a t i o n s ) 1 5 -1 6 , 31
coHroH 3p3M63J!3X apra ( s e l e c t i o n s o r t ) 1 4 0 -1 4 2 , 146 CTeK ( s t a c k , FXLO) 9 5 -1 1 0 , 133, 159, 271
cTeKHHr >KarcaaJiTaap h jispxhh jisx 1 0 1 -1 0 2 ereKHHr MaccHBaap iDi3pxHHJi3X 98 -1 0 0 p op yifotjs&jt 98 push yfMllSMt 98
cyypnap 3 P3 m6 3 JI3 X apra ( r a d i x s o r t ) 1 6 1 -1 6 6
TapxaJiT to o j io h 3P3M63JI3X apra ( d i s t r i b u t i o n c o u n t/ b u c k e t s o r t ) 1 5 1 -1 5 3 TOITMOJI vprraH kojjh h jio ji ( f i x e d l e n g t h e n c o d in g ) 2 5 2 -2 5 3 Tonopxo ir-6y c t o re reJ ier-Teji e b t MarnHH (n o n d e t e r m in i s t i c f i n i t e s t a t e
m a c h in e ) 2 3 7 -2 4 3Terc jrer TeJieBT MauiHH ( f i n i t e s t a t e m a c h in e ) 2 2 8 -2 2 9 , 2 3 7 TYBUlHHriiHH xaifaTblH apra (b r e a d th f i r s t s e a r c h ) 2 7 2 -2 7 3 T3MH3IT M ep ( s t r i n g ) 221
T3HUB3pT MOA (balanced t re e ) 200-212 T3HUB3pH&H K03<})<l)HUHeHT (balance c o e f f ic ie n t ) 201
yjiaaH-xap moa (red-b lack tre e ) 209-212
IToJibill T3MA3rA3r33 (P o lish nota tion ) 106-110, 131,132
xaajiTHM 6aJiaHc man rax ajiropHTM XaHOHH uaMxar (Hanoi tower) 36-40 xaiiirr(searching) 191-220 xaMrHHH 6orHHo 3aMxapyyji SJieMeHT (s e n t in e l element) 143, 157, 161, 175, 184, 186 XHitcB3pJl3JlT (a b s trac tion ) 18XoepTHH MOA (b inary tre e ) 128-136, 167, 174, 196xoepTHH xaftJiTHH moaoop xaftx 197-199, 200xoepTHH xaiijiT (b inary search) 34, 194-197XoepTHH xaftJiTHH MOA (b inary search tre e ) 167-173, 200xoepTHH xaftJiTHH MOAOOp 3p3M63JI3X 166-174xoepTHH 4>aflJl (b inary f i l e ) 222, 251xepiu xarcaaJiT (adjacency l i s t ) 266xepiu MaTpHH (adjacency m atrix ) 265xypAaH 3p3M63A3JiTHHH apra (quick s o r t ) 9, 34, 155-161xyBaax SJieMeHT (p a r t it io n in g element) 156xyBfccax ypTratt kojtihjioji (v a r ia b le length encoding) 253-260X3Jl3y#H 3aAJiaH annul xhhx (parsing) 243, 244-249X3C3rJi3H-H3riT3X anropHTM (d iv ide-conquer) 34-36, 155, 185, 194
UIHA3T KBaApaT (magic square) 65-74 UiyraMaH xaiiHT (sequ en tia l search) 5, 192-194
$aHJl uiaxax ( f i l e compression) 250-262 OHCoHa^HiiH Too (F ibonacci number) 15, 32-34 4>yHKH AyyAax MexaHH3M (ca ll/ re tu rn ) 96-97
SHrnfiH HJl3pXHHJi3Ji (regu la r expression ) 236-2433P3M63T AapaaJiaJl (p r io r i t y queue) 124-125, 174, 256, 260-262, 275-278 3P3M63JI3JIT (s o r t in g ) 138-1903p3M633p xaiix apra (p r io r i t y - f i r s t search) 275-276
d e le te onepaTop 50 hash 213hash (fcyHKII 214-217
ca/iaHnm rmCKHH apra (s e p a r a t e c h a in in g ) 217H33JITT3H xaarJiajiTbiH apra 218uiyraMaH Tannax apra 218KBaapaT TaHAax apra 219.naiixap hash xaamajiibiH apra 219
heap 3P3M63JI3JITHHH apra 174-183heap ererflJinftH (fyrau 174-180, 256, 260-261H uffm an KO# 254-260Huffm an M0 4 254-260K ruskal-H H H apra 276new onepaTop 50S h e l l -h h h 3P3m 6sji3X apra (S h e l l s o r t )2 -3-4 MO# (2 -3 -4 t r e e ) 207-209
c la s s S tack 98, 99, 101, 1C)3, 104,c la s s Queue 115 , 119, 136, 272 ■c la s s Deque 121 , 241c la s s B in T re e 132c la s s P o in t 21, 24c la s s C i r c l e 25c la s s I a r r a y 34c la s s Node 7:7 ;c l a s s L in k e d L is t 78, 81, 153c la s s D o u b le L in k 83c la s s Mouse $9c la s s M o u se L is t 89c la s s Polynom 93c la s s b i t s k e y 163c la s s BSTree 167\1 169, 173, 198c l a s s Heap I 76,\ 180c l a s s A V L tre e 203}, 206c l a s s H u ffm anT ree .256, 260C l a s s PQ 261