algorithmiin shinjilgee

279
ByJiar 2 AjITOpHTMblH UIHHXHJIT33 AiraBaa ajiropHTMHr HMap h st nporpaMM^JiaJibm xsjm HSBTpYYflS-nrYHrssp tyyhhh aaoiJiJiax ropHM, TyxaiuiSaji tyyhhh a^auuiax xyraijaar toitooxo^ cuieopumMbiH uiuH0icme33Huu aopHJiro opinHHo. Tsb1 ! ajiropHTMHH axHJUiax ropHM,n Main ojioh xy^hh 3yHJic Hejieeimer ynnp TyyHHHr hb ijaB toitoox 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 H 6o/^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 toitm oji Kosc^cJjimHeHTYY^HHr YJi X3 p 3 rc 3 H, ererAJiHHH X3 MX 33 xn 3raaprYH hx YPYY tsm yy^x Yefl ajiropHTMHH aaCHJIJiaX ropHMHr TO^OpXOHJIOX IOM. )KhIII33JI63JI MaCCHBHH X3MJK33 n rsx; ereraee#, ajiropHTM h l 10 On ajixMaac Tormor 6oji 100 tscsh TornviojiHr YJi aHxaapaH tyyhhh am m ax 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 rsx xsjdk 6ojiho. Xs^HHrssp n=5 yefl Hsmyresp ajiropHTM loon h l 500 ajixaM, xoep^yraap ajiropHTM 2n2+50hl ioo ajixaMXHH^srHn2HLn —33Chxynpaacxoep^yraap ajiropHTMHr Hsr^Yresp ajiropHTMaac yaaaH rsac Y33X 6ojiho. Yhhp h l n- u P lh xaHrajiTTan hx yTraHfl flsspxH xapmyyjiajiT h l flMarr yhsh 6aHHa. HyxaM^aa n >50 ye# xoepnyraap ajiropHTM h l H3rAYr33P ajiropHTMaac yzjaaH 4

Upload: -

Post on 28-May-2015

102 views

Category:

Engineering


3 download

DESCRIPTION

data struct

TRANSCRIPT

Page 1: Algorithmiin shinjilgee

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

4

Page 2: Algorithmiin shinjilgee

AjizopumMbiH luuHoicwieaa

K)M. U,aaiiiHJi6aJi H3rAYT33pajiropHTMbiH aaouuiax xyrauaar loon18 reac Y3C3H 4 n18 Hb n2 —aac 6ara ynpaac Hsrayresp ajiropHTMbir hjiyy xypAaH rsae xsjdk 6ojiho. 3h3 toxhojiaojia n -hhh yrra oHpoJiuooroop 300,000,000 6aiix yesc loon18 Hb 2n3+50 —aac 6ara 6aiix60JiH0 . Tscsh X3AHH 4 ajiropHTMUH a^auuiax xyrauaar toaopxohjiox HJi3pxHHJi3Jm opojiuoac 6yw TOiTMOJiyyA HX3B4JI3H Maui 6ara yrraTaH 6aitn,ar.

Bhahhh inHHXHJiT33HHH yp AYH Hb ererAJiHHH TO^OpXOH opojrrofl TyxaHH ajiropHTMWH ajKHJUiax xyrauaar toaopxohjiox ecTOH. Tsbh aJiropHTM Hb 3HTHHH xaji6ap 6hui opojixHH erer/yiHHH 6ojiom)kht toxhojwoji 6ypt a KHJUiax xyrauaar toaopxohjiox Hb 6ojioMacrYH iom. M sjj,33X. opojithh erer^iHHH 6ojioMkHT TOXHojiAnyyA Hb acap hx, T3r33A h HX3HX ajiropHTMyyA opoJiTHH AJiraaTaii ToxHojiAJiyyAaA HJiraaTaii axcHJiJia^ar. XapHH 6ha aJiropHTMblH OpOJITblH X3M3IC392 HIHH^KHJir33HHHX33 IHHH2KYYP GOJITOH aBCHaap Tyxan ajiropHTMWH aaouuiax ropHMbir toaopxohjiox 6ojiom3Ktoh. M3^33>K aJiropHTM Hb OpOJITblH X3M5K33 H5KHJI 6aHX 6yX TOXHOJIAOJIA aAHJixaH aacHJiJiaxrYH h , 6hahhh 3H3 cohtojit Hb uiHHacHJirss xhhx xaMTHiraToxHpoMacroH uihhkyyp 6ojdk Ha^Ha.

TyxaiiH 6cwiorbiH xyBbA ajiropHTMWH aacHJiJiax xyrauaar erenym ira X3M2C33H33C XaMaapcaH HJI3pXHifJUI33p Y3YYJI3X Hb HIHH3iOUir33HHH 30pHJIT0 6o;iho. 0MHO flypbflcaHaap opojrraH Hsr h^khji xsndksshhh xyBbA opojiraH ererAOJi HMarr hjkhji GaftAarryi*. Hhm# opojithh toaopxoh toxhojiaoji, TyxaHJi6aji xoMauuu Myy moxuojidjibia coHroH aB4 Y3A3r. Opojithh ©rer/praiiH X3MXC33 Hb n 6anx Y®fl ajiropHTMHH aauuuiax xyrauaar g (n ) <J>yHKU33p HJI3pXHHJm3r r3B3JI ajiropHTMHH lHHH>KHJir33HA Aapaax xoep TOXHOJWJIbir Mep/wer.

(1) xaMrHHH Myy toxhojwoji : opoJiTbiH HMap H3r 6ojiomxht yrraHA g (n) c})yHKUHHH xaMrHHH hx yiTa.

(2) EpeHXHH toxhojiaoji : g (n) cJ>yHKUHHH AyHAax yiTa.

3apHM y^A g (n ) cjpyHKUHiiH xaMNKftH 6ara yTra 6ojiox xaMrHHH caftH TOXHOJWibir aBH Y33X maapAJiara h rapnar.

/lyHAaac yrrbir MaraAJiajibiH ohojihh Aapaax oHJirojiTHH yeA aBH x3Ji3Jiua3r. nx, n2, n3, ... , nk TOOHyyA xapraji3aH px, p2, p3, ... , pk MaraAJiajiTanraap TOXHOJiAAor T3B3JI AyHAax yrra e Hb Aapaax TOMT>eoroop TOAopxoHJiorAAor.

E * n1p1 + n2pa + n3p3 + ... + nkpk ( Zp i = 1 )

0rerAC0H sJieMeHTHHr n 3JieMeHTT3M H3r X3MX33CT MaccHBaac xawx Aapaax uiyeaMdH xaujimuH aJiropHTMaap A33pxw ToxnojiAJiyyAwr win TaTan

5

Page 3: Algorithmiin shinjilgee

Byn3Z 2

TaMJT6apjrafl. UlyraMaH xan^TbiH ajiropHTM Hb xawjiTbir MaccHBbiH 3XJi3;i33c TercrejT YPYY^3C napaajiaH xapbixyyjiaii rYHU3TT3zi3r 6a ajiropHTMbiH aaouuiax xvrauaa Hb orer/iceH sjieMCHTHHr MaccHBbiH sjieMehtyy^tbh xapbuyyjiax c Tooroop ToziopxoHJiorzwor. Hhmssc 3H3 ajiropHTMbiH xyBbA xaMrHHH Myy TOXHOJI4CJI Hb XaHX 3JieMeHT MaCCHBT 6aRXryH, 3CB3JI MaccHBbiH xaMrHHH cyyji^ihhh 3JieivieHT 6aHxa^ 6HeJiJi33 ojtho. 0epoep X3ji63jt ajiropHTMwh a>KWJiJiax xvrauaa Hb erenaceH sjieMeHTHiir MaccHBbiH 6yx 3JieMeHTT3H xapmyyjicaH xapbixvyjiajiTbiH too toh tshuyy 6yioy

C (ri) = n

6aiiHa.

XapwH epenxHii T0XH0jm0;in xawx ererzjceH 3JieMeHTHHr MaccHBT 6awraa r3ac y.3B3Ji tyyhhw Gawpjiaji Hb MaccHBbiH 6ojiom>kht n HH3biH 6aHpjiaJibiH ajib H3r 6aHpjiajia 6aiix 6ojiho. 3h s toxhoji^ojw Mara^aji Hb p=i/n 6aiix 6a xapbuyvjTajiTbiH to o Hb yr sjicmchthmh MaccHBT 6aHpJiax 6aHpjiajiaac xaMaapax 6ojiho. T3rB3Ji .nyH^a^c yTra Hb

C (n) = 1 - — + 2 • — 4- ... + n • — = n n n

1 n • (n + 1) 1 n + 1- (1 + 2 + ... + n) • — = ---------------- • — = ---------

n 2 n 2

6atea.

Ep Hb ajiropHTMbiH epeHXHii T0XH0JW0Jm aacHJUiax xyrauaar (ayitgax yiTbir) TojuopxoHJiox Hb xaMrHHH Myy ToxHOJiflOJiA a^KHJiJiax xyrauaar TpAopxoHJioxooc hjiyy TeBerT3H 6aH,nar.

<PyHKI^HHH eceJITHHr YH3JI3X

/lypMH m ajiropHTMbiH xyBbji tyyhhh opojrrbiH erenyiHHH xsMacaar n reac yabe. T3rB3Ji n-HHH X3M5K33 Hxcsx TycaM m ajiropHTMmh aacnjuiax xyraixaar PIJ13pXMHJ13X g (n) (JjVHKHHHH VTTa 0C©X Hb HJI3pXHH K)M. g (n ) (J)yHKHHHr 3'apHM cTaanapT f (n ) (J)yHKUYYOT3H xapbuyyjiaH tyyhhh ecejiTHHr Toixopxoii/DK 6ojiaor. TyxaHji6aji flapaax eraHflapT f (n) 4>yHKUYYOTftrH3pjI3>K 6OJIHO.

Togn, n, nlogn , n3, n3, 2n

2.1 hyt33P 3ypraap n-HHH Tonopxow yrryyabiH xyBb^il33px c|)yHKUYYJlHHH

6

Page 4: Algorithmiin shinjilgee

AaeoputmtbiH

yTrbiH ecejiTHHr oiipojiaoo/ioH xapyyjuiaa. 3yparr c raHZiapT (})yHKHYY,£tMiii ecejiTHHH YH3Jir33HHM(n,aryy carcaacaH Sereo# jiorapncj^M c yh k u h h h ©cqjit xaMrHHH yAaan 6awxaA Hjrrreni 4>yHKUHHH ©cojit xaMrHHH TypraH 6aiiHa.

\ f ( n )

n w S9logn n nlogn n2 n3 2n

5 3 5 15 25 125 32

10 4 10 40 100 103 103

100 7 100 700 104 10® 1Q30

1000 10 103 104 106 109 103°o

3 ypar 2 .1. CTaHflapT c^yHKUYYAMMH yTrbiH ecem

g (n) 4>yHKi|HHr flsspx f (n) CTaHflapx (J>yHkliYYAT3H xapbuyyjiax H3r apra 6oj[ o T3M/j;3rji33r amnrjiax iom.

O T3Mfl3I\JI3r33

A/irOpHTMbir UIHH2KJI3X 6HAHHH apra Hb TOITMOJI KOScj^HUHeHTHHT OpXHH, opojrrbiH ©rerAHHHH X3M>K33HHH xyBbA ajiropHTMhh aaauuiax xyrauaar xaMrHHH Myy toxhojiao ji# toaopxoh jiox iom. IIlHH^CHJirss xhhx 3H3 apra Hb "o“ F3X TycraH TSMflsnisrssr aurarjiaHa.

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

HJispxHHJi^K: 6o jiho. >Khiii33Ji63Ji, n>4 yeA 5n2+i5 i 6n2 6an,nar ynpaac 5n2+15=0(n3) T3X Y333K 60JIH0. M©H 00p H3f 5KHHI33HHH XyBb£, 5n2+15 < n3 CaHflar yqpaac 5n2 + i 5 = 0 (n 3) T3>k y33 ^ 6 o jih o . 3 h # 3 3 c xapaxafl &

i3MA3rJi3r33r33p ajrropHTMHH aaaumax xyrauaaHti^ssfl xH3raapbir T o rrod i^ 6aiwa. Tscsh xs^hh 4 #33# X5i3raap re^sr oh jito jit Mam xapbuaHryM oHJirojrr iom. >Khhi33Ji63JI 3H3 homoha aBH y33x 6yx ajiropHTMbiH aaauuiax xyrauaar 0 ( 2") T3)K X3JI)K 60JIH0 . 0 © p eep X3JI63JI T3flr33p ajiropHTMbiH a^KHJUiaX xyrauaa Hb 2B —33c xsTpsxryH. Tsbh 0 (2n) Hb xaHrajrrraH hx yrra 601004 hxshx ajiropHTM Hb yyhssc h jiyy xyp^aH axHJUia,aar. Hhm33c xaMrniiH oiip A33A xaaraapbir ojdk to ito o x Hb 6hahhh u ih h xh jii 33HHH 3opHJiro 6hji33. 00p00p X3JI63J1 g (n ) 6ojioh f (n) (J>yHUYYAHHH xyBbfl l i m ^ g (n) / f (n) =0 6anx iom.

7

Page 5: Algorithmiin shinjilgee

A w o p U m M b tH W UH3KUJ1133

• 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.

OT3MAsrJi33r auiHTJiaH ajiropHTMHH aaauuiax xyrauaaHH A33A XH3raap 6yioy XYP3JIU33T xyrauaar TOAopxoftJinor 6ojiobm sh s Hb 3apHM \ea ynnp AyrarAajiTaii 6aflAar. )Khui33Ji63ji 6ha 3H3 homhh 6yx ajiropHTMHH axcujuiax xyrauaa 0 (2 " ) r s x xsjijk 6ojiho. G epeep x3ji6sji Tsaresp ajiropHTMHH axcHJUiax xyrauaar toaopxoh jiox cjjyiiKU Hb H jnrsra (jjyHicussc xstpsxtyh T3C3H YT. r3BM 0 (2 ") Hb HX3HX ajiropHTMHH XyBbA HMap 4 eapHMxaaryH XH3raapjiajiT 6ojiox 6ereeA tsa tssp ajiropHTMHH aacHJUiax xyrauaa Hb YH3H X3p3iT33 Maui xypAaH 6aiiAar. Hhma 6ha 3eBxeH A33A xaaraap 6hui, xapHH ryxaiin ajiropHTMHH axHJiJiax xyrauaar HJiyy HapHHBiJiaH TOflopxoHJiox

9

Page 6: Algorithmiin shinjilgee

Eyji3t 2

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

(log^nf I 0(alog‘ ) = 0 ( n)

T3»C HJ(3pXHHJI3X 60JIH0 .

HHHJI63P SOJIOH YP*B3pHHr X3p3rJI3CH33p O HJI3pXHHJI3JIfl HaHapblH eep'uieJiT rapaxryn. © ep eep X3Ji63Ji

8

Page 7: Algorithmiin shinjilgee

Bynaz 2HJiapxHHJUiHHr rapraH aBax h l nyxaji. ArcropHTMbiH ajKHJiJiax xyrauaar Hr TOUOpXOHJIOX HJT3pXHHJIJIHHr TOMLeOJIOX HL Maill X3HYY 6er00A XapHH #33a 6a noon xiJ3raapyy^Lir toxiopxohjdk 6ojiho. 2.2 — p 3ypraap <j)yHKUHHH noo# 6ojioh JX33JI, XK3raapLir rpa^HKaap zrypcjipH Y3YY^33-

3ypar 2.2. OyHKi MMH aooa 6a A33A xfi3raap

U,oon xa3raapLir to^opxohjiox h l JX33H XH3raaptir TOflopxoHJioxooc hjiyy T6BeiT3H 6a fe ir . JXoojx xH3raap h l TyxaHH Gojuiorwr iumma3X hjiyy c a t e 9©p ajiropHTM SaHxryii rs^rHHr HJispxHHJmsr tom. X sp 3 B o p o jit l ih orer^JiHKH X3M>iC33 h l n>N 6anx 6yx n — hhh xyBba; ryxaim 6o^Jiorbir uiHHii3X3Ji uiaapaaraax ajiXMLiH too g (n ) h l smaxnaa c- f (n) 6anx c 6a n r3C3H Torm ojiyya opiiiHH 6aHBaji 6 Ha g (n ) = Q ( f (n ) ) t3>k xsjihs.X3P3B TO^OPXOH H3T f (ft) (f)yHKU HL g(n ) = 0 ( f (n) ) 6a g(n ) = Q ( f (n) ) xoeyjiaH r xaHra?K 6awBan g (n ) = 0 ( f (n ) ) T3MiprJi3,a3r. O, Q, © h l xapraji3aH <, >, = xapm yyjiax yhjizuiyy^tsM roxHpaor.

AnropHTMbiH a^KHJuiax xy rau aa

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

Page 8: Algorithmiin shinjilgee

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.

AjiropHTMA ryHu;3Tr3rA3X TyJixyyp yHJiAJiHiir too jiox Hb thhm 4 xiiJi6ap 611111 iom. 3ha 6ha ajiropHTMHH axHJiJiax xyrauaar toouoojiox sapHM MaTeMaraK apraraft TaHHJiuax 6ojiho.

Xsp3B aJiropHTM Hb xsa X3A3H xscrssc 6ypAA3r 6oji tyyhhh aacHJUiax xyrauaa Hb X3C3T Tyc 6ypHHH HHHJl63pT3H T3HUYY 6aHHa. T3C3H X3AHH 4 3H3 Hb 3apHM toxhojiaojia thhm 4 3HTHHH xjui6ap toouoojdk 6ojiAorryH. TyxaHJi6aji, cinropHTM Hb xsa X3A3H AaBTajrraac TorrAor 6a AaBTajiT 6ypT 3apuyyjiai Aax xyrauaa Hb HJiraaTaH 6a t a 6ojiho.

)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.

E n • (n + 1)i w — I--------- i

i = l

BaTajiraar MaTeMaraK hhaykuhhh apraap XHHe.

1 • (1 + 1 ) J r-J Ln=l Y^A S(l) = 1 = -------|----- HHHJl63p YH3H 6aHHa.

, n • (n + 1)nTOOHH XyBbA =? 1 + 2 + 3 + . . . + n = - -------- HHHJl63p yH3H T3B3J1

(n + 1) • (n + 2)n+i toohw xyBbA + & - ---------- ----------YH3H 6ojioxbir 6aTaJi'bfl.

n TOOHbl S (n) HHHJl63p33C S (n+1) =S (n) +n+l 6aHX Hb TOAOpXOH.

, n • (n 4- 1)s (n) H3M3TA3XYYHHH opoH A------ ------- -M ur opjiyyji6aji

0/ n • (n + 1) (n + 1) • (n + 2) ^S(n) = ------ ------ + (n + 1 ) = ------------—------- 6ojdk 6hahhh 6aTJiax 3yHJi

6aTJiarAJiaa.

/l,33px HHHJi63pHHr n AaBTaJITblH ajixaM SypT n ymjia3JI XMHX3A rapax hhhji63pt3h xapbuyyji6aji i - p a^btbjit 6ypr i —33c n xypT3Jix yiiJiAJiMMr

11

Page 9: Algorithmiin shinjilgee

AieopuinAibiH uiumtcujieaa

Cyyjiihhh (4) T3HU3TT3JIHHH 6apyyH 6a 3yvh rajiaac /lapaax TSHUSTrejmiir rapraH aB'i 6ojiho.

J i 3 = ]T < i3 + 3i2 + 3i + 1 (5)i= l i=0

j^33pX (5 ) T3HU3Tr3JIA i-HHH 1-33C n-1 yiTyyflafl i 3 Hb T3HU3TT3JIHHH XOep Tajm epeHXMH ynup xypaarflaa#

n - l

n3 = 03 + ^ (3i2 + 3i + 1) i=0

6ojiho.

XI,apaax HHHJiSapYYAn—1 . n - l

E n ■ (n - 1 ) V ■ 2 0 , 1 21 = -----; ----- 6a L , 1 = s^n) “ n

i=0 i=0

6ojioxbir 6h;i m3/ih3. Sflreap HHta63pYYflMlir (6)-fl opjiyyji6aji

3 2. 3n • (n — 1)n = 3 • (S2(ii) - n ) + -——— — « + n zz>2

n 3 - 3n ' (n " * • - n * 3 • (% (n ) - n 2f 2

60JTH0 . 3h^33C 6hK s 2 -HHr OpOJITblH X3M)K33 n-33p TO^OpXOHJDK 60J1H0 .

n3 — 3n • (n — l)/2 ® n 2 n3 3n2 n n • (n + 1) (2n + 1) '*S?(n) = ----------------------------------- H + II = = —1—-------------- -----------

3 3 6 6 6 •;

)K u u i3 3 J.'i^apaax hhmji63pmh r Toonocwrbe. 3 h a a b 4 y33X HHKJiSap hj> mo^tom

axwuiax yea apnTflax 6ojiho.

n

F(n) = ^ .2* = 1 + 2 + 4 + . . . + 2” / [)i =0

/],33px (1) T3HU3TT3JIHHH xoep xajiHr xoepoop yp*YYJDk xyBHpracHaap aapaax T3HU,3iT3JiHHr rapraac aBtfl.

2F(n) = 2 + 4 + 8 + . .. + 2° + 2“ +1 (2)

13

Page 10: Algorithmiin shinjilgee

EyAaz 2

opxHac Sataa.

/Kuuiaa 2: 3 h s aom issrasp n jiaBTajiTbiii i —p araaM 6ypr i J ynjmsji xhhx aapaax hhhjiSsphht aB>i yate.

n

S2(n) = (1 )i = 1

XapHH nflaBTauTHH anxaM 6yp r na y itjpp ji xhhx hhhji6 3p Hb n3 6anx 6ereefl,3HA33C

S2 (n) in 3 (2 )

T3A3r Hb HJISpXHH IOM. /^33pX (2 ) T3HH3Tr3JI 6HUI33C S3 (n ) (J)yHKHHHr TOflOpXOHJTbe.

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.

n

SMn) = £ i 3 ( 3 )i= l

^33px (3 ) HHHJiSspHHr xyBHprajrr xhhh eep xsjiGspr opyyjrba.

n n n - 1

S3(n) = 2 ^ i 3 =i=l i =1 i»0

v^1 .3 2 . Wfc' > (1 + 3 i + 3 i + 1)i =0

M u re * xyBHprajrr xhhch33p hhhji63p Hb 0-33C n xyprsjix HHltiiSsp Sojuioo. 9h3 iuHJDKYYJi3JiT33p yr HHHJi6 spT 'WHaptiH xyBbfl HMapn eep4ji0jrr opoxrytt 6ojioxHr 2.3 ayraap 3ypraac TeBerryfl xapx 6ojiho.

l 3 + 23 + + (n - 1 )3 + n3

(0 + 1 )3 + (1 + 1 )3 + (2 + 1 )3 + + (n -1 + 1 )3

1 + i r + 1 )

Page 11: Algorithmiin shinjilgee

A teO p u m M b lH WUH3K.UM33

PeKyppeHT

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 .

C(2"j = C(2n-1) + l

= a 2* “2) + 1 + 1

= a 2" ' 3) + 3

= 0,2°) + n = n

15

Page 12: Algorithmiin shinjilgee

Eyjise 2(2 ) T3HU3Tr3Ji33c (1 ) T3HU3Tr3JiHHr xacBaii

2F(n) - F(n) = 2n+l | I

6o;ik o . 3ha33c f (n ) -Htir 1

F(n) = 2a+1 - 1

6ojioxb ir xaii6apxaH x a p * 6ojiho .

)Kuiu33 4: Jlapaax apaft xyH,H3BT3p H3r HHHJiSapHHr aBi yabe.

nG(n) = J ] i ■ 21 = 1 ■ 21 + 2 • 2* + 3 • 23 + . . . + n • f® (n

i= l

3 h s HHftJiSspHHH xyBbfl typyyhhhh aprar arirania*, ( 1 ) t 3 M I3 t t 3jihhh xoep Tajibir 2-oop ypxyyjibe.

2G(n) = 1 • 22 + 2 ■ 23 + 3 • 2* + . . . + n • 2n+1 (2 )

/J,33px (2 ) T3HU3TT3JI33C (1 ) T3HU3TT3JiHHr xaccaHaap i - s s c xaM aapa jry ft T ow beor rapraH aBax 6ojiho .

G(n) = 2G(n) - G(n) m n • 2 "+1 (1 ■ 21 + 1 • 2* + . . . + 1 • 2a ) | |

= n • 2 "+1 - (2“ +1 - 2) = (n - 1) • 2n+1 + 2

X . U U 1 3 3 5 : f la p a a x H H i u i d s p H b h e a p 3 P 3 m 6 3 j i 3 ; i t h h h a j i r o p H T M M H

iiiHHXMJiraaHHH yea »pnr/fax 6ojiho .

n

Gin) = £ i - 2n_i = 1 • 2n_1 + 2 • 2"- * + 3 • 2“" s + ..... + ■ 2°| l= i

3 h s HHHJiSapHHH xyBbA li OMH0X aprbir xspsraae.

2G(n) = 1 • 2n + 2 • 2n_1 + 3 • 2n“ 2 ■( . . . t- n • 21

^asp x xoep HJispxHftjuiHHH H/iraBpaap i - H H H xaMaapjibir apHJirax 6 o j i h o .

G(n) = 2G(n) - G(n)

= 2n + 1 • 2n_1 + 1 • 2n_2 + . . . + 1 ■ 21 - n • 2° == 2n+1 - 2 - n

14

Page 13: Algorithmiin shinjilgee

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

T O iio p x o H J i^ o r .

C ( N } * C (M / 2 ) + N , N > 2 , C ( 1 ) = 0

0MH0X TOWbeOHbl H3r a/IHJI N Hb XOepblH 33pI33p MJI3pXHHJT.3r#C3H T3X Y3B3JI H33pX TOM'beO Kb M + N/2 + M/4 + N/8 4 ... T3C3H HHHJl63pT3H T3HU.YY 6ojiho. 3h 3 Hb roeivfeTp rcporpecc 6eree,n 2N-T3H T3Huyy iom.

ToMbeo 4: J J a p a a x p e K v p p e H T T O M 'beO H b o p o J iT H H e r e r # e j i x o e p x s c s r T

x a r a c J ia H x y B a a r ^ a x 6 y p i i H H o m h o x , x y B a a r ^ c a H b i # a p a a x Q r e r R o n js ,

6 o / io B c p y y jia J iT x h m x (x a n u ,a x ) p e K y p c T 4 )v h k i j ,3 3 c r a p H a .

C f N ) = 2 • C (N / 2 1 + N , M > 2 , C ( 1 ) = 0

3 h 3 H b x a r a c / ia n x 3 C 3 r j i3 H - H 3 r r r 3 X a j i r o p n T M L iH y h ^ c s h T O M t e o j i o j i i o m .

C(2n) « 2 • C(2n -1 ) § 2n

m n ,

3h3 TOM'beO hw xapwy Hb 2-p TOMLeoHbi rapraJiraaTaH m cmji 6ojiob4 xaracjian xyBaarncaH xscsr (2 xscsrr xoey/iaHfl) 6ypT ryiiijsTrsrAsx hsmsjit yw iw iiiiir TOOIIOX 60JIH0. HHM33C C (N) HL NigN 60JIH0.

16

Page 14: Algorithmiin shinjilgee

E y j r a r 3

0 rerAJiHHH xhhcbsp Tepeji 6a C++

3h 3 hom h l HMap H3r nporpaMM^JiajibiH xsji, TyxawjiSaji C++ 6ojioh o 6i»eKT- xaH^ajrraT aprwH Tyxaii 6mui 6e re e ^ xapwH ©reiTyiMMH Gyrau 6a ajiropHTMbiH ryxa ii TaHJi6apJiaxa^ h h t j is c s h iom. Y r h o m h h n po rp aM M yyn iib rrporpaMMiJtajiHH C ++ xsji $3#p SMHMmcsH. C ++ 6o jioh o 6'beKT-xaH#ajrraT apra Hb ererfljm iiH ffyn re ftr H3BTpyyji3X toxmpom^ktoh xspsrcs ji 6ojmor. LIImh3 yen im nporpaMMqjiajibiH o jioh xsjryyn; eeP xoopoH ^oo tq c ts h 6eree/j; C++ xsji A33P 6H4Hra;c3H nporpaM M Hr 6ycaA xs ji pyy x>ui6apxaH xepByyjDK 60JI0X K)M.

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

ainiirjiax, eep^iJiexe# Xflji6ap 6aiix TaJibir 6apb>K 6H4C3H.

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.

Page 15: Algorithmiin shinjilgee

QzeidmuH xuucesp mepeji 6a C++

© epeep xaji6a.ii XHHCBapjisjrr raflar hb anHBaa TaBHTflcaH acyy/uibir tyyhhh ererfl^YYflnttr yA jw d ih h xaMTaap 3arBapHJiaxbir xsjihs. ©rerflrtyYfl3# 39BX0H T3 f lr3 3 pT xn ftrflax YHJiflJiYYA33P xaH/iana. H hm uihh>k naHap 6yxhh iai Bap'uiajtbir ererflJiHHH XHftcBap Tepen r3H3. ©rerflJiHHH XHHCB3p Tepeji hb ererjyiHftr raflHBi op 'iH ooc .najmajiflar 6 a 30BX6H yh jw sji Hb ra/ura o p 'lh h to h xoji6orAOH (xaparaaH) orer/iejm xau/jax ryyp Sojdk erfler. Y yh h h t 3.2 ayraap 3ypraap xapyyjuiaa.

OrerAflu iiH xuncBap Tepen

ererflnYYfl

YMnflnyYfl ryyp

_______________________________

3ypar 3.2. ©rerflntiiiH xmmcbsp tepen

Oeeedjium 6ym3u, 6 o a o h msdesspm xuiiedsx yundnyyduuz (amopumMyydbiz) i aeoapmax yu/i neu, Hb epoocee a o e e a d n u u H xuiicesp mepen modopxou/iox yibi st«H io m . ©H3 yrraapaa yr hom hh nporpaMMbir o6'beKT-xaHflaJixaT apraap C++ 11 porpaMMHJiaJiHH xan auiHniaH hsbtpyyjicsh. ©rerAJiHte 6yrau, h l ererflen, i jjxraapHim 3oxhoh 6 aHryyjiajrraac rajuia y r ererflJiYYflSfl xh h itisx yiiJwiYYflssp TOflopxoHJiorAaor. QrormiHHH XHftcBsp TepjiMHH coHroflor Aitui3 3 6o jitqh CTeK 6a jiapaajuibir xajDK 6ojuio. 3 jU 3 3 p ererAJiHMH SyrnYY# Hb 6y ca « ererflJiHHH 6ythyy,Hmmh ajinji e rer fljra iir 3oxhoh 6aHryyjiaH ><;mrajiaxaac ra#Ha y r ererflJ iyY flS fl xh h x yHJiJIJiYYAsspss oh u jioh i i i/iopxoHjior/mor. © ep eep X3ji63ji HMap Har yHfiflsJi apHxryftraap apraap oi oivutHHH 6yni,YYflHHr TeceeJiex h xaparrytt. TyxaHJi6aji, Aapaajiaji hb HMap n ir TepjiHHH ererflnyYflHitH uyBaa 6eree# axaiDK opcoH Hb axarac rapax racaH sapHMaap ajtouuiaflar. XapaB 6h « a ro 3apliMbir opxHr,nyyji6aji yr ererxuiHHH 6yreu Hb AapaajuibiH 'laHapaa ajiflax 6ojiho.

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

Page 16: Algorithmiin shinjilgee

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

Page 17: Algorithmiin shinjilgee

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

HJispxHHJiflar. KjiaccT ToaopxoHjioracoH ereraeJi 6ojioh 4>yHKHYYaHiir loiaccHH rmuYYH rsro. Kjiaccbir ToaopxoftjK«aoo class TyJixyYP Ythhh TycjiaNDKTaitraap aapaax 6aiiaJiaap Toaopxoitnaor.

class Point { public:

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.

21

Page 18: Algorithmiin shinjilgee

b \ . m 3

9XT: >KarcaanT

0rerfle/i:HMap H3r TepnuHH ererfljiyYAMMH uyBaa

Ywnflan:>KarcaanTafl lumhs ererfle/i opyynax xrarcaariTaac ererflen raprax >KarcaanTaac ererflexi xafix

3ypar 3.3. >KarcaanTbir ererflriMMH XMficBap Tepneep toaopxomjiox

© re r/ u n iim xHHCBap r e p j i e e c o O ie ic ry y A YYcA 3 r. 06i>eKT xaHAaJixax n porpaMMMJianbiH y e n nporpaM M Hb YHAc3Hfl33 oS ie ic ryyA S o jioh TSAraap xooD of izibiH xapbiiaanaac TorTAor. Y yn H H r 3.4 —p 3ypraap AYPC3Jui93.

3ypar 3.4. flporpaMM flaxb o6teKTyyA

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

Page 19: Algorithmiin shinjilgee

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.

Fhuiyyh 4>ynKH hb o6bcktoa flyynarnaH tyyh h h ereraeji/i yhjm sji xhhx 60JIH0 . OyHHKHHH AyyflMTKH 06ieKT0^ M3fl33 flaMDKyyjiaX T3X 6a 06 'BeKTBIH

Page 20: Algorithmiin shinjilgee

Oc'ezdjiuitH xuiiciop mepoji 6a C++

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

111 oo icoh 6aiix ecxoii. YynHHr 36BxeH 6aHryyjiar4 4>yHKH n xhhx 6ojiho.I>.111 ryyjrarM (JiyHKH Hb 6yuaax TepeJiryii.

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

23

Page 21: Algorithmiin shinjilgee

Ey/i32 36ojtom>k 6aMnar. 3 h 3 hb 3©bx©h n a m tpyw cy, 6o jioh Haii3 K J ia ccaa p x h h itp * : dojfho. Haiia (J^yhkii Hb KJiaccbiH p r iv a t e , p r o te c te d , p u b lic xa i^ajrrraH 6yx rHLUYY^^ xaHna^K na^Ha. Y yh h h xyjm iiaH3 c^yHKUHiir f r ie n d TyJixyyp yrnHH TycjraMXTaftraap toziopxoh jiox Gereezi KJiacc a o to p 3ap;ia£ar.

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

xaH,a;a»c w^Ha.

C++X3JI h l 4>yHKU 6ojioh onepaTopbir axHH toaopxoh jdk 6oji,n;or ohujioitom . OyHKU ZtaXHH TOflOpXOHJIOrACOHOOp HXHJI H3pT3H X3R X3ft3H (J)yHKUT3M a>KHJUiaxLir 3©Biii©©p.a©r. 3,ur33p 4>yHKUHHr C ++ kom iih jih top apryMeHTbiH Tep©ji? Tooroop Hb HJira* raHb/iar. >Kmii33;i63;i p o in t mraccT Ganryyjiar1! cJjyhkii Hb noxiih To/iopxoHJior/icoH. 3z*r33p 6aHryyjiarq 4>yHKHYYOTHH H3r Hb apryMeHTryH 6aMxan Her©© Hb in t x e p jra ta xoep apryMeHT aBHa. M © h P o in t KJiaccbiH 06 'beKTbiH xoep hh3bih 3apjiajm>ir xapcaH 6anx. T srax ssp P o in t p i ; o 6i»eKTbiH sapjiajrraap p o in t ( ) 6aHryyjiarii cfjyHKu; Ayy^arAax 6a P o in t p2 (3 , 7) ; 06T>eKTBIH3apjiaJlTaap P o in t ( i n t nx, in t ny) 6aH ryy jian c^yHKii #yyaaniax 6ojiho.

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

cout « p i ;

T3 C3 H 6niui3raMH x3 Ji6 3pHMr auiwrjiax 6ojiom>ktoh 6ojiho. YyHHit Tyjm; P o in t fgiaccMH aapjiajiTaa napaax cjpyHKHHHr H3M>k er©x iuaap^JiaraTaH.

c la s s P o in t { in t x , y ;

p u b lic :

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;

} ' ‘ P r o

KJiaccbiH ©ep Hsr^aByy Taji 6 oji k o jiu t xaMTpaH 333MUiHX 6o jio m *to h . 3hs Hb opuiHH banraa KJiaccaac ihhh3 KJiacc yuaMiiiHH YYC3X Ye# flpwrnax iom.

24

Page 22: Algorithmiin shinjilgee

OzeadnuuH xuuceap me pen 6a C++

III 11 im p yycc3H KJiacctir y d a M m e a n Kjiacc, opiifflH 6aacaH KJiacctir ynd can

|n ) KJiacc 13X H3pji3A3r. YAaMiucaH KJiacc Hb yhacsh KJiaccbiHxaa 6yx •miiYYAHvir aryyjiaxaac raAHa ©epHHH hsmsjit rainyYAHHr aryyjiax 6ojiho. Miii KOflbirxaMTpaH 333Minc3H33p ko am hAaBxijan apHJiax iom . YAaMincaH MAn'MH rWIHYYH (fcyHKIJYYA YHAC3H KJiaccblH private, protected rHlIIYYA3A lAMiiax 3pxT3ft. Tscsh xsahh i y#aMincaH KJiaccblH 3apJiaJiTbiH y^a private,

ot acted, public TyJixyyp YTYYAHiir aiiraniaH yhacsh KJiaccblH rauiYY/Prar MMMiucaH KJiacca^ yAaMWHX 6o;ioh xaHAax apxHiir 30XHuyyjDK ©rA©r.> i *mmean KJiaccblH o6i>eKT yyc3X YeA yAaMincaH KJiaccblH GaHiyyjiani •|»vmkh33c 0MH0 yhacsh miaccbiH Gaiiryyjiapi <t>yHKU AyyAarAaH yhacsh MuccbiH o6i>eKT yyC3Hj yJiMaap yAaMiucaH miaccbiH o6T»eKT YYcA3r. Xsp3B fii/ic3H KJiaccblH 6aftryyjian <J>yHKU apryMeHT maapAAar 60ji tyyhhh «I»i yMCHTyyAbir yAaMincaH KJiaccHH 6aftryyjiarH 4)yHKU,33p AaM5KyyjiaH (kitosyyAaanuuH anxubi ymea omox jtcascaafimbiH TycjiaMJKTaMraap xaHraac ©rA©r.

♦ m in 33 6oJiroH P o in t KJiaccaac yAaMiimx c i r c l e KJiaccbir aB4 y3be. AnHBaa •11 por Hb TOwpniHH t©b 6ojioh paAHycaap TOAopxoHJiorAAor. TowprHHH t©b

III. ( x , y ) KOOpAHHaT 6yXHH U3I33p 0r©rAA©r. HilM33C C i r c le KJiaCC Hb Po in t tnnccaac yAaMincaHaap P o in t yhacsh K/iaccbiH x ,y nmiYYAHHr TOHprMHH i«*ha ainwrJiax 6ojiho.

1us C irc le : public Point { int radius;

I * * * I»l i e :• irc le (in t rad, in t centre_x, in t centre_y ); c irc le ( ) ;

void draw c i r c le ( ) ;

l)MA (3, 2) KOOpAHHaT A33pT©BT3H 10 paAHyCTaifcTOHprHHr C irc le KJiaccblH of>l,eKTOOp

11c le c ( 10 , 3 , 2 ) ;

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-

V HAC3H KJiaccblH 6aHryyjiarc 4>Yhkuhhh apryMeHTbir aHXHbi yiTa ojirox *arcaaKTaap ojirox 6a SaiiryyjiaFmilH aHXHbi yrra ojirox acarcaaJiTbir v/iaMiiicaH KJiaccwH GanryyjiarH 4>yHKijHHH H3p 6ojioh koamh xoopoHA napaax 6aHAJiaap TOAopxoiuiAor.

25

Page 23: Algorithmiin shinjilgee

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,

3apHM yea yhacsh KJiacc hb 3obx0h yaaMuicaH KJiaccyyabfr YYcr3X3& Tycaax 'laHaprawraap Toaopxo ifjio raaor. O ep eep x3ji63ji nporpaMMa YHAC9H KaaccBiH o6teKTBir aaHraap hb yycrex maapanararyft, 36BxeH yaaMuicaH laiaccyyaBiH o6 ieK n oH axujoiax uiaapaaara 6a fix 6oaHo. 3 h s ToxHoaaoAH YHAC3H KriaccBir xuuceap KJiaccaap toaopxohjdk 6ojiho. Xmmcb3P Kjiacc hb njvdx. H3r 3ICUHX3H3 (ipeap ) oupycui tpymcif aryyjicaH 6attx ecToit.

class abstract__base { public :

v i r t u a l v o id draw () = 0 ; // XHHX3H3 BHpiyaJI (jjyHKHY:

X h hc b sp K/iaccaac o6'teKT yyc as ityh 6a xapHH tyyh h h 3aarHHHr 3apaaH au iHraa* 6ojiho.

3 h 3 h b yaaMiucaH KJiaccyyaaa x h h x s h s BHpxyaa (})yiiKHHHT aaxHH ToaopxoliacHoop aHHaMHK xo/[6ojit xhhx Taaraii opqHH 6ypaYYjm3r-

C++ xsjihhh tempi a te tyjjxyyP Ythhh Tyc;ia Mxxaiiraap 3arBap 4>yHKU 6ojioh 3arBap KJiaccur ToaopxoflacH oop aypuH erera^HHH Tepeua ajKtuiirax epoHXHH 3opHyaaaTBiH cjjyHKU 6a KJiacc YYcraxHttr 36BUieepaer. 3 h s oiuxaor hb orera/iHHH eyuaYWHHr epeHXHH 3®pHyaarraap ereraaHHH AMap i Tepan xaaraaax 6o;iOM*oop xaHraaar.

3 h s M3-TOI3H C++ xs/iHHti.Syx OHiyior 6oaoH aaByy xarcyyaHr fau n Syarssp asarspsHryH Ta&i6apjiax hb yH3X3 sp 6oaoM5krYH iom. T s rs sa ‘i 6 HaHHH

26

Page 24: Algorithmiin shinjilgee

OzeadjiuiiH xuuceap mepeA 6a C++

YHAC3H 3opmiro 6oji C++ xaraiiir cyzyiax 6hxii 6ojioxoop C++ xsjihhh 3apHM oiuirojiT, TSflreapHHH xspsrassr yHiimrq Ta yr HOMbir cy/yiax HBiwaa eepHHH C++ X3JTHHH Mannar fl33p33 TyjiryypnaH oiuiroH 333muiidk aBax Sojiho.

3H3 HOMOHA 6H>UirflC3H aJHOpHTMyyHHH HSBTPYYJIMTHHT 3apHM X3p3r/I33HA uiyya aBH am 11 max Sojkjmhctoh 6o;i 3apnM xsparjresHHH xyBtA hsm sjit aaoinr X3p3rji3r>i33c m aapAa* 6ojiho. Tyxaflji6an 3H3 homohzi xafiJiTUH anropMTMBir TaHJi6apjiaxflaa 36BX6H 6yx3Ji to o 6a 6oraHoxoH tsm a s it mophhh xyBbjj aBMY3C3H 60JI JKHHX3H3 X3p3rjI33Hfl ypT T3MA3IT M6p HaaUIHJl6ajl TOMOOXOH6nlui3rYYAMHH xyBifl xspsnisx maapAJiara rapnar. F 3bm shs xoep toxhojiaojhi; aBH Y33X apra hb kschji iom.

27

Page 25: Algorithmiin shinjilgee

EYJrar 4

PeKypc

PeKypc HB KOMTIblOTepM HH 60JI0H MaTeMaTHKHHH UIHH)KJI3X yxaaHbl YHAC3H OHJTrOJIXblH H3X IOM. PeKypCblT MaJLU 3HFHHH33p X0# 0pX0ftjl60JI 00p e 0 eop iw reen yyzw a r cJwhku iom. M oh xsa X3H3 H cfcyHKuyya HsrHHrss#aM2CKH nyyaax (th h x h h xoMpor ) 6aftivraap naM HJispq 6ojiho. PeKypcx ^YH kuhhh 3aHJiLnryM uiaapzuiara 6oji e ep o o oepH iiroo uyyacaH x©rcx0JiryH (m ohxhhh) naBxajixbir 3orcoox hoxhoji 3aaBaA 6aftx ecxoti.

P e K y p c b iH y h a c s h o f t j ir o jr r

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.

PeKypc auiHrjiaxbiH © m h o xyyHHHx o h jifo x 3opHJiroop aapaax (flaBxajix aunfrjiaaryH) peKypcryii hsxsh xyBHJi6apbir coHHpxourooe.

#include <iostream.h>. in t p o w e r O ( ) { r e t u r n 1 1 } \

i n t p o w e r 1 (1 { r e t u r n 2 * p o w e r O ( ) ; }

i n t p o w e r 2 ( ) f r e t u r n 2 * p o w e r 1 ( ) ; }

i n t p o w e r 3 ( ) { r e t u r n t * p o w e r 2 ( ) ; }

v o i d m a i n ( ) {c o u t « " 2 t o t h e 3 t h i s ' ' « p o w e r 3 ( ) ;

23 —irar ojioxhoo j p i p i nporpaMMA ysyyjicHssp powerO ( ) , . . . , power3 () F3C3H A0PB0H 4>VHKJI33p nlHHfl35K 60JIH0. 33p3F Hb X3IT3H XSHU,yy 6aHXafl 1I3C3H yxra 6yiiaax 6 a 6yca£ toxBof58pif% ©MHex 33prssc xapcaH yxrbir xoepoop YP5KYYJT3H H3r 33f@ f aXMVJDK 6aHHa.

-1 2 1 - 2 * 2 ° = 2 '2 2 ® 2 * 2 * : - 4 23 * 2 * 2 * = 8

28

Page 26: Algorithmiin shinjilgee

Peicypc

EpeHXHH TOXHOJWWm; XOepblH n 33prHHr

2n = 2 * 2 n- 1-

T3JK HJI3pXHHJIH3.

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.

Xoepbm n 33praftr (2 n) 6oaox pexypc aum niacaH nporpaMMbir AoopY3yyjiji33.

♦♦include <ios~€ream.h> int power(int n) {

if(n ==0 ) return 1; else return 2*power(n-1);

} I void main() {

cout « "2 to the 3th is " « power(3 ) ;}

/I,33px nporpaMMWH p ow er ( ) <J)yHKij Hb peKypcT (fjyHKU ecoop © ep ee nopHHr©© AyyAax 6o jioh 3orcoox H ox iy ioep xaHrar^caH 6aHHa. JXs b u iy y ^ x DprwHH yrrk r p o w e ro $yH K ipp lH apryMeHTaap AaM^Kyyjraa. pow er o i|)VHKUHHr #33px 6afiAJiaap toaop xoh jicoh toxh o jiao jia apryMeHTaap xacax v rra AawDKyyjDK 6ojioxtyh . y *m p Hb power ( ) 4>yHKii; m qhxhhh AaBTajrraA opox 6ojiho.

A Jin Baa peKypcT c^yHKii, Hb Aapaax xoep X3cr33c t o it o h o .

• PeKypcbiH TercreJi 6yioy 3orcox h©xh©ji

• PeKypcT Ayy^ajrr

PcKypcT ffyynaxr h b Aapaax rypBaH X3cr33c 6ypA3H3.

( I ) 6oAJiorbir A3A (h s t 6y ioy xsa X3A3H aooKHr) X3cryyA3A xyBaax (?.) xyBaarAcaH R3R xsc3r 6ypT 4>yHKii,HHr (peicypcssp) Ayy^ax

(1 ) A3A X3cryy#33c Hpc3H uiHHAYYAHHr H3rrr3x

I ’cKypCT 4>yHKU Hb peKypcbiH T©rcr©Ji 6y ioy 3orcox h©xu;©ji xypT3Ji ©©pHHre© ;ivv/ian ajKHJiJiaaA, Aapaa Hb AYYAarAcaH Aapaajuiaapaa eadpde 6yuHa. Hhm33c iorcox HexnJiHHr 6yu;ax h©xu©ji r 3 x xs jisx Hb HJiyy 3 oxh m *toh 6aiDK 6o jiox H)M. Y r a p Hb 3orcox hoxh©ji 6neJicH33p peKypcT (JjyHKii, xuyyA Ayycaxryii (x >ro©A Ayy/jarAcaH 6aHpmJiAaa 6yu;a>K ohhh maarn YprsJi^aiyyjisH aaouuiaAar. PcKypcT 4>yHKHHHr AyyflarAax 6o jioh 6yu,ax 6aHAJiaap Hb myraMaH 6a m o a

29

Page 27: Algorithmiin shinjilgee

Byjije 4

x3Ji63pT3H T3>k anrHJDK 6ojiho. TIIyraMaH X3Ji63p Hb 3orcox Hexue/i xypT3Ji (J>yHKu; peKypcssp yy^ar^canH Aapaa r3#p3r 6yuax aHXHLi 6anpjTajm omho. Tyxafe6aji xoepwH 33psr ojiox power () (})yHKij, <J)aKTopHaji ojiox 4>yHKuyy- iinnr xsjdk Gojiho. XapHH uiyraMaH 6yc moa X3Ji63p h l rs^psr 6yu;ax 3aMaacaa 4)VHKUHHr naxHH peKypc33p jiyyimar. Oepeep X3Ji63Ji eepee eepHHree X3,n X3H3H ynaa zryynax 6eroe.n 3orcox nexneji X3# X3^3H y/xaa 6Hen3r^3X Gojiho. >KHUi33jr63Ji XaHOHH uaMxrnwH 6oflJion>ir hihhasx c})yHKU, xoepTLin XaHJtTblH MO/ILir X3BJI3X cfcyHKU 33prH.Hr X3JDK 60JIH0 .

0MHex xoepLiH 33p3r ojiox peKypcT ajiropHTMLir flapaax 4>yHKU33pHJI3pXHHJIH3.

f 2 * f (n -1 ) , IMBf (n) - i ;

1,1, n=0

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

6aHHa” T3X eepnitr h l aryyjiax xyyxsjmsHHH 6yuaa5K xapnyjiHa. ^IpTpoocoo xoep naxt xyyxsjiflsft “ mhhhh ziotop H3r xyyxsJixpH 6awraa, najiTan hhhjissa

= | * f (1)f ( ! ) • =* ,2 m f ( 0 )

f ( 0 ) = l (6yuax Hexujieep) f ( l ) # 2 * 1

= 2 * 2 ,.:

.

30

Page 28: Algorithmiin shinjilgee

Peaypc

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 .

PeKypcT Ayy^aJiTbiH T ercreJ ieec 6yuax y w w is s p uiHHAYYAHiir xspxsH M'irrrsxHHr apaBTbiH to o ju ih h chctcm a ©r©rAc©H Toor xoepxbiH too ju ih h c HCTeM xepBYY^3^ X3BJI3X Aapaax a a tm ss rs sp TaniiGapjian. ApaBTbiH lOOJTJIblH CHCTeMHHH TOO T XOepTblH TOOJIJIblH CHCTeM A X0pBYY^3XA33 yr TOOr2 - t xyBaaH Y ^ M p iM l r aB4 6yx3jt x sc rn iir Hb AaxHH 2 —t xyBaax 6aiiAJiaap U IT3H T3HIHYY 6ojitoji AaBTAar. YjiAsrAJiYYAHHr AapaajuiHHX Hb scp s r <)awpjryyjiaxaAxoepTbiH toojijibih to o rapHa. 3 h 3 yh jiajthhr AaBTaJiT aniHrJian UIMHAB3JI YTO3rAJiYYAH^r Aapaa^Jiaap Hb x s b jis x 6o jioxryH 6©re©A ty p xaAraJiax MaccHB (s cb s ji ©op HMap H sr 6ytsu0 maapAJiaraTan. Y/iMaap x o p b YYJI3JIT AyyccHbi Aapaa MaccHBaac opcoH Aapaajuibiiix Hb scpsrssp rapraH x jiuisx ecTOH. T3TB3J1 pexypc aniHrJiaH 3H3 6oAJiorbir ihh hasxsa flMap h M JM3JIT 6yt3u; 6o jioh h jiyy YHJIA3JI maapAJiararyH 6©re©A Aapaax peKypcT liitsO cf>yHKIJ33p y3YYJIJI33•

void b it s (in t n) {L f(n ){ -

b its (n / 2 ); cout « n%2;

» t s ( ) 4 >yHKiiHHH apryM eH Taap x e p B Y Y ^ x apaBTbiH to o ju ib ih CHCTeMHH

to o r AaM acyyjiHa. jl,3 3 p x 4 >yHKUHHH x s b jis x M e p n n r p e x y p c 3 3 p AyyA ax

MopHHH ©MH© OpyyjDK ©TB©JI AaBTaJlTaap H iyyA X3 BJ13XT3 H JDKHJI YP AYHA

\YPH3.

PeK yppe iiT TOM'beo

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.

- 1 T3 B3 JI n > l y e a n ! i n * (n - 1 ) ! :

I )ope©p X3JI63JI f (n ) - n ! T3B3JI Aapaax 4>yHKU33p HJI3PXHHJIH3.

31

Page 29: Algorithmiin shinjilgee

Eyjiae 4

r 1, n=0f (n ) = J

I n * f (i):) , n£l

f ls s p x 4>yHKH3fl xap ra im x peKypcT cjiyHKUHHH KOfliir floop Y3YYJH33.

unsigned int factorial(unsigned int n) { i f (n==0) return 1; else return n * fac to ria l(n -1 );

}

JJsapx 4>aKTopnaJt o jiox <j?yHKU(33c yhhscjish n to o h o o c k 6ojioM xoiH r COHrOX KOM6uHaTOpjlKHH C3Jir3MJIHHH 6o® IorH r TOflOpXOiUIX SOHHO. )KHin33^63fl 5 6ex maTapHHJDK (T o iip roop ) Sapmwax 6apHjmaaHH Toor o jiox Scyyioro Saftac 6ojiho. © ep eep x3Ji63;i 5 Gexeec xoep xoepoop coHrox 6ojiom5khhh Toor o jiox iom.

YyHHftr KOMSHHaTOpHKblH C3JIT3MJ1M h T0Ml.e0r00p Toflopxofljyior.

k n!c --------------n k!(n k)!

S h s TOMT.eoHA xapraraax pexypcT 4)yHKHHHH KOfflbir floop ysYYJures-

int choose(int n, int k) { if(k == l) return n; else if(n==k) return 1;else return choose(n-l, k-1) + choose(n-l, k );

i

flapaax aonnaaresp O n 6oH aliHilH to o h flapaaw iH r o jiox peKyppeHT TOM ieo aBH Y3be.

I f = Ft = 1 6a 6yx n>2 yen

F„ - + F „-2

3 h3 TOMi>eoroop Toflopxoiuioraox On6onaHHHH TOOHyyn aapaax aapaajunar YYcraHS.

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ,,,

S h s peKyppeHT TO M ieor aapaax peicypcT 4>yHKH33p T o flo p x o lta c 6ojiho.

int fibonacci( int n) ( if(n<= l) return 1;else return fibonacci(n-1) + fibonacci(n-2 ) ;

)

32

Page 30: Algorithmiin shinjilgee

PeKypc

9h3 cfjyHKH hb peKypcBir xapxaH amHniaxBir xapyyjiaxaac 6hui peicypcBiH .naByy Tajibir xapyyjiaxa# ToxnpoM xroii xhui33 6hih k>m. Ynnp Hb shs cfjyHKHHHH peKypcT Ayy^ajiTaap Fn l 6a Fn_2 Hb xapHJiuaH xaMaapajiryii ToflopxoHJtorflOHO. 0 e p e e p X3ji63ji Fn rHiiiYYHHitr ojioxoa ayy^arflax C ibonacci () cJiyHUKHHH TOO Hb f- raiHYYHHifcr OJIOX JiyynaJITMH too 6a Fn_

rHHiYYHHiir ojiox ayyaaJiTbiH TOOHyyflbiH HHHJi63pT3H tshuyy mm. Fn l i HuiYYHHiir ojioxfloo M0H Fn.2 (6a Fn 3) rauiYYHHitr ojiox maap/yiaraTaft. '9h433c Fn_2 rHiHYYHHHr ojiox yhji^sji aaBTax hb xaparaajK 6afiHa. 3hs mbt'ihjish ax jiax rH u iYY fln ftr ojiox 6ypT 6ara th h iy y a flaBxapflaH i (wopxoHJiorflox 6ojiho. Tyxaiui6aji TaB flyraap nmiYYHHftf ojioxoa 6ycaa inmyyzufftH Tooiioojiorflox 6aitzpibir 4.1 —p 3ypraap Y3YYJIJI33.

F5

F4

3ypar 4.1. flaBxapflcaH TooqoononTyyfl

fl < >px ajiropHTMHH xyBbfl Fn rHiiiYYHHHr ojioxofl 3apuyyjiax xyrau,aa Hb

in iPi 4>yHKU33p ((j) ", (j>=i. 61803...) HJi3pxHHJi3rfl3* Saitaa. Yrraa Fn

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

Page 31: Algorithmiin shinjilgee

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

<» >1 HHocroH TaBHx iom. TaitnrAax 3ypaac H3r Hsracssp 6omHocoop 0 yrraTaii fx uioxoa ru le () (JiytfKH A3A xsp'tMHtir uaain xaracjtan xyBaaxryii.

I 1 —aap 3ypraap rule (0 ,8 ,3 ) ra x Ayyaaxaa rule ( ) (JjyHKUMHH axHJUiax •mxMyyAbir ayyaarAax 4>yHKnyYAHHH xarcaajrr 6o;ioh uiyraMaHA xyBaapb 1 ;tiinx Aapaaroiaap Y3yyjiji33 .

\ jp3B 6HA rule () (JtyHKHHHH KOAAaXbmark () c|)yHKUttMH AyV/iaJtTbir rule ( ) i|>yHKHHHr xoep petcypcx AyyAaJiTMH xoopoHA 6aiipjiyy.n6a.fi xyBaapunr hivraMUH 3YYH33C 6apyyH tmhuiss 4.4 —ssp 3yparr ysyyjicHsap aapaajiaHIIIHHHa.

m le O (JtyHKUfl3X mark () cJtyHKHMHH 3H3 XOep >IH3bIH 6aiipjtaJtbIH yp ziytl/l

niyraMaHflTaBHrAax xyBaapb jdkhji 6ojiobii xyBaapKynbiH TaBMAax Aapaaji&n

Page 32: Algorithmiin shinjilgee

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

Page 33: Algorithmiin shinjilgee

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:

37

Page 34: Algorithmiin shinjilgee

Eyjisz 4rule (0,8, 3)

mark(4,3) rule (0,4,2)

mark (2 , 2 ) ru le (0 , 2 , 1 )

m ark(l,1 ) ru le (0 , 1 , 0 ) r u le d ,2 , 0 )

rule (2,4,1) mark(3,1) ru le (2 ,3,0) rulfe(3 ,4 ,0 )

ru le (4 ,8 , 2 ) mark( 6 , 2 ) r u le (4 ,6,1 )

mark(5,1 ) ru le (4 ,5 ,0 ) ru le (5, 6 , 0)

r u le ( 6 , 8 , 1 ) mark (7 ,1 ) r u le (6 ,7 ,0 )

j __L

l u - . L 1

1 1 1

■ i ■ i i

■ i ■ I ■ i

■ i ■ I ■ i ■

3ypar 4.3. XyBaapb TaBMX

Hb eep SaftHa. 3hs flJiraaHH an xoJi6or/iJiHr 9 flYra3P fiyjiresp Y33x xoepTbiH MOflbir X3BJI3X c{jynKU33c hjiyy Toflopxcrii xapax Sojiho.

XaHOHH uaMxar

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

Page 35: Algorithmiin shinjilgee

Byjiae 4

n = 3: A->C, A -»B , C->B, A">C, B->A, B-»C, A"> C

I3C3H 7 YHJIJI3J1 XHftni3H3.

A . J . . A 1 X d 1 0 E "mmm

i i i l l I L L

3ypar 4.5 XaHOMH naMxar flaxb rypBaH flMCKMMr wmDKyynax

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

Page 36: Algorithmiin shinjilgee

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

Page 37: Algorithmiin shinjilgee

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*:

Page 38: Algorithmiin shinjilgee

PeKypc

Gojiho. 3 h 3 aJiropHTM^, xoep toohbi HJiraBapBir aBax 3aMaap 6oAJiorBir GaracraH iuhhas^k Ganna. Ajetophtmbih aaouuiax xyrauaa hb xoep toohbi yiryyAHH hx 6araac 6hih, xapHH T3Ar33pHHH xoopoiiAHH 3epyYH33c xaMaapHa. Xoep toohbi xoopohahh 3epYY xojiaox TycaM ajiropHTMHH a>KHJiJiax xyrauaa hxschs. TyxaitntfSaji, n hb Maw hx too (10000 6aiir), m=4 GawBaji A33px artropHTMaap 6ha n —33 c m —hht onpojiuooroop n/4 y#aa xacaac onre. 3 h 3 toxhojiaojia ajiropHTMHH aaouiJiax xypA hb o(n) 6aima. Hhmssc 6ha ajiropHMBiH axHJiJiax xyrauaar xypAacraxBiH Tyjm xoep toohbi xoopoHA \nwrA3x YHJWiH^r Garacrax xspsrreft.

|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.

41

Page 39: Algorithmiin shinjilgee

*

MaccHB 6a 3aar4

B y J i3 r 5

OrerAJiHHH 6yTitYYOTHr myraMaH 6a myraMaH 6hih rsac anrHJiAar. 3jieMeHTYYA Hb A3c AapaajicaH 3qxhoh 6aHryyjiar,acaH erenyiMHH 6yTu;HHr myraMaH 6yt3i^ r3H3. IIIyraMaH 6yTUHHr caHax oha xoep yhacsh apraap HJispxniiJiAsr. Yyhhh H3r apra Hb 3JieMeHTyyA xoopohahh myraMaH xaMaapjibir caHax ohh A3C AapaajicaH 6aHpJiajiaap HJispXHiuiAsr. Hhm myraMaH 6ym3A 3H3 6yJir33p y33X mbcchb opho. IIIyraMaH 6ytuhhh e©p H3r x3Ji63p 6oji ajieMeHT xoopohauh uiyraMaH xaMaapjibir aaar^aap 6yioy xoji6oocoop Hii3pxHiijiA3r. Hhm myraMaH 6yTii;HHr ^carcaaJiT rsx 6a AapaaqHHH 6yjir33p y33x 6ojiho. XapHH myraMaH 6hih ©rer/yiKHH 6yn^3A moa, rpa(J) 33psr 6yTUYYA xaMaapHa.

M acciiB

MaccHB Hb C++ 6ojioh 6ycaA hxshx nporpaMMHJiajiMH xsjisha toaop- xoiiJiorAcoH YHSC3H ©rerflJiHHH 6yT3ij iom. MaccHB Hb Aapaax uihhhc qaHapyyAbrr aryyjiAar.

(1) MaccHBHH 6yx 3JieMeHT H3r hxmji T©pe;iT3H 6a H3r h)kh;i H3p33p XOAopxoHJiorAAor.

(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

42

Page 40: Algorithmiin shinjilgee

Maccue oa 3aaeii

HirtMiirarytt 6 ©r©©A yyH H ftr K0 MnHJiHT0 p ry iiU 3 T r3 A 3 r . M accM B b iH

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

I I mo n 6a H ^raac n porpaM M axou u ia x y e a AHHaM HKaap ©ep^iiJDK 6 o jiA o r r y l i .

MaccMBbiH x3M)K33r eepHJi©x maapAJiara rapBaji nporpaMMbiH sx nm O0 P4JIOJIT XHHX AaXHH KOMnHJiaUM XHHX X3p3rT3 H. T 3B4 3apMM

•I* »i pUMMHJUUUblH X3JI Hb TiporpaMMUH aSOIblH HBUaA MaccMBbiH X3M3K33r BBpHflox Gojiomxoop xaHrarAcaH 6aHAar. TyxaftjiGaji C++ X3/I3HA MaccHBbir maim aumrJiaH ererAJiwiiH XHHCB3p T©pji©©p TOAopxoiuicHoop TyyHHH 1 " i o r AaxHH ©©phhjuk 6ojioxbir 3H3 6yjir33c xapac 6ojiho. 3 h 3 h l % »i D P433C (koahjiox) H3M3JIT a:>KHJiJiaraa maapAax 6ojih6 .

U|K>rpaMMHJiajttiH X3Ji 6ojiroH MaccHBbir 3apjiax 6ojioh aiimrjiax ©©pmhh Ayp Ep Hb ajib h X3JIHMH xyBbA Aapaax rypBaH 3yiiJiHttf hjispxhh 6yioya*m (>aviAJiaap TOAopxoiiJDK ©rA©r: (1) MaccHBbiH ©rerAJikim t©p©ji, (2) UAICMBUH H3p, (3) MaCCHBMH SJieMeHTHHH TOO 6yiOy HHACKCHH My)K. ^mio3Ji63Ji 3ypraaH 6oamt too xaArajiax MaccMBbiH 3apjiajiTbir IlacKajib Qomm C++ X3J1HMH xyBbA aBH yjbe.

riaCKaJIb*. var data: a r r a y [1 . .6 ] o f re a lC/C++'. f lo a t data [6 ] ;

Moh 3apnM nporpaMMHuajiUH xsjisha MaccHBbiH HHAeKCbir TOACpxoii my/khwh xoopoHA 3aax: ©rn SojiAor. )K h ii i33ji63ji:

IlacKajib: var w a r ll [1941.. 1945} o f in teger

*Vc++ x sjish a MaccHB 6a 3aarii Hb Maui h x yjuiAaaTaii 6ai*Aar ynpaac 6 h & 3H3 t>VJH33p m ©h 3aarHTaii TaHHJiuax 6 o jih o . T s r s s A h 3aar*i Hb ererA-JiHHH ')yi'UYYAHHr 30XH0H GawryyjiaxaA Maui nyxaji yYpsirsH .

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.

43

Page 41: Algorithmiin shinjilgee

E\j13S 5

M accuem x u u x ym dnyyd

MaccHBbir 6ycaa e ren u ra iiH 6y x u y y a h h h 3o xh oh 6aHryy/iarrr 6ojtoh 3apHM ajiropHTM/t Main ep reH aum niaAar. M araAryH 3apHM x sp s r jisn i (ym n H rq ) ajiHBaa acyyAJibir i i ih h a 3XA33 JoyH TypyyH MaccHBbir coH roH aBAar 6aic& 6 ojtox io m . 3 h 3 h i> xyxa iiH GoAJioroA m b c c h b roxH poM aeroH 3C3XHiir 6oaojiixoxooc Hjryy t y y h h h t auiHriraxaA XHJi6ap 6aHAarraH ^ xoji6ootoh 6afoK 6 o jih o . H h m # MaccHBbir anmrJiaxbiH ©m h o TyxaftH SoAJioroA yH3X33p TOXHpOMXTOH. XaMrHHH CBHH, XypHaH a5KHJDTaX 33prHHr xapac Y33X X3p3TT3H. YyHHH XVJIA MaCCHBT XHHX 3apHM YHJ?C3H yiiJWIYYUHHr aBH Y3 te - YyHA:

( 1) Iy u x . MaccHBbiH 3JieMeHT 6ypT xaHAax(2) Opyyjiax. MaccHBX hihhs sjigm cht hsmsx(3 ) y c r m a x . MaccHBaac 3JieMenx xacax

liaawHJi6aJi MacciiBaac 3JieMenx xaux, MaccHBbiH 3JieMeHTYYAHHr 3p3M63Ji3X 33psr Y&JiAJiYYAHHr AVpbAa^K 6ojiho. XapwH xaHJix 6ojioh 3p3M63Ji3JiTHiir 6ma Aapaa xvcaA Hb eep 6yjir33p aBli xsjisjm sx ynnp Typ opxHe.

MaccHBbiH 3JieMeHxyYA33p rynx 6yioy 3JieMeHTyyA3A xaHAax Hb TyH X5m6ap. Tyxaiu i6a;i 6 ha MaccHBbiH 6yx 3JieMeHTYYAHHr X3BJi3e r s x y3be. 9h3 xoxmojiaojui MaccMBA jtsr ynaa rywH ©HrepexeA a xaHrajrrraH SoreoA 3JieMeHT 6 yp r 30 BX0H ram * VAaa xaHAax 6o jih o . 9 h s YHJiAJiHHr aJiHBaa riporpaMMHJiajibiH xs jia MaccHBbiH h hackchhh xyBbA AaBTajiT xh iok ryHii3xr3H3.

MaccHBX iiiHH3 *3JieMe'Hx opyyjiax yhjiajihhh yeA 3apHM Hsr acyyAaii yycns. f 3XA33 3H3 yhAasji Hb X3333, xaaHa opyyjiaxaac xaMaapax iom. Tyxaiui6aji MaccHBbir iuHH33p yycr3)K, hihhs 3JieMeHT SypHirr typyYtm hh opyyjicaH sjieM eH xim H xc mho opyyjiax Hb xuJi6ap iom. T3rB3Ji uihhs sjieMeHTHiir MaccHBbiH 3JieM;eHXYYAHHH AyHAyyp opyyjiax yeA opox 6aftpjiajiaac xohihxh 6yx 3A.eMehthifv H3r H3r Sawpjrajiaap xohihoo hihjukyy-asx 6ojiho. Xsp3B 3H3 YCA MaccHB AYYP3H 6ailBaJI XaMrHHH CYYAHHHH 3JieMeHT T33rA3X 6ojiho. n 3ACMeHXT3H (x3M>K33T3H ) MaccHBbiH k Ayraap 6aHpjiajiA 3JieMeHT opyyjiaxbiH xvjia n-k uihjdkyyjisat uyr xiiHrA3>K HBax iom. 5.1-p 3ypraap a MaccHBbiH 2-p oaHp/iajiA cn? T3C3H 3JieMeHT opyyjiaxbir ysyyJibe.

isMaccHBaac 3/ieMeHx ycTrax yeA moh a33Pxhhh aAHJi acyyAaJi xy/irapHa. 00p0©p x3Ji63Ji.k Ayraap 6aHpJian:aac 3JieMeHT ycTracHaap TyyH33c xohihxh 6yx 3JTeMeHTYYH H3r H3r yparm u ihaxhx Gojiho. 5.1 3ypraap a MaccHBaac rypaB Aaxb ‘ s ’ 3JieMeHTHHr ycTraxbir xapyyjuiaa.

44

Page 42: Algorithmiin shinjilgee

Maccue 6a 3m zh

i v v)MMC33cm M accue

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

C++ X3JIHHH MaCCHBblH H3p Hb y r MaCCHBblH 3XJI3X XaflTHHr HJI3pXHHJIA3r. O©p©0p X3JI63JI a T3A3r Hb & a [0 ] T3C3H y r K)M. H s r X3M3K33CT MBCCHBbir

45

Page 43: Algorithmiin shinjilgee

Ey,'i3e 5

(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.

O a OH X 3M 3fC 33C m M Q C C U 6

C + + X3JI Hb OJTOH X3M5K33CT MaCCMBaap XaHraracaH. OjIOH X3M3K33CT MaCCHBblH 3apJiaJITbIH epOHXHH X3Jl63p Hb:

t y p e na m e [ a ] [ b ] [ c ] ... [ z ] ;

6aHHa. O jioh X3M2C33CT MaccHBbiH xaMrHHH x*ui6ap x3Ji6sp 6o ji xoep X3M3K33CT MaccHB iom. 10 Mep, 20 6araHa 6yxhh xoep X3M)K33Ct td MaccHBbir:

i n t t d [ 1 0 ] [ 2 0 J ;

r3)K 3apjiaHa. Xoep x sm d o sc t MaccHBbiH sxh h h HHaeicc Hb M©p, yaaax HHaeicc Hb GaraHbir HJi3pxHHJiH3 .

>Kh lH33Jt63Jl in t a 13 J [4 ] MaCCHBblH XyBbJl,

46

Page 44: Algorithmiin shinjilgee

Maccue 6a 3aaen

baraHal BaraHa2 BaraHa3 BaraHa4.i[0] [0] a [0] [ 1 ] a [0] [2] a [0] [3]a l l ] [0] a [ 1 ] [ 1 ] a [1] [2] a [ l ] [ 3 ]

|M | »I M 2 ] [ 0 ] a [ 2 ] [ 1 ] a [ 2 ] [ 2 ] a [ 2 ] [ 3 ]

M/r*pxHHJi3rA3H3. XspsB xoep xsmhcssct MaccHBbiH Mep 6araHbiH too jlMtlYY <>o;i KBaApaT MaccHB 6yioy MaTpmj T3H3.

M * i h iit aHXHH yrra ojiroxAoo Aapaax 6H4Ji3rHHH x3Ji63p33p opyyjuK em e .

I i ( 2 ] [ 3 ] = { 1 , 2 , 3 , 4 , 5 , 6 } ; lift! a(2] [33 = { { 1 , 2 , 3 } , { 4 , 5 , 6 } } ; i » « A l l [3] = { { 1 , 2 , 3 } , { 4 , 5 , 6 } } ; i«ki a12 ] [2 ] [3 ] m {

{ { 1 , 1 , 0 } , (2,0, .0} } ,{ { 1 , 1 , 1 } , { 1 , 2 , 0 } }} ;

A * »px yrra ojirojrryyAbiH 3 —p mophhh xyBbA MaccHBHH x3MiK33r orerAceH •fni/lo/I A33p YHA3CJI3H KOMnHJIHTOp TOAOpXOHJIOX GOJIHO.

1 aar<i

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

Page 45: Algorithmiin shinjilgee

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.

^apaax koahh xscrssp 3aarii x3px3H aapnax yrra ojiroxur TaHJi6apjiaa.

int i , j , *p; i * 1; j = 2;

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.

p Q?

3ypar 5.2. Byxa/i too 3aax p 3aam

p &i

3ypar 5.3. i xyBbcarmiMr 3aax p 3aarn

48

Page 46: Algorithmiin shinjilgee

Maccue 6a 3aazn

p ®

Jypnr 5.4. p 3aarn caHax omh eep 6aMpnan 6yK)y j xyBbcamMMr 3aax

Vymih Aapaa cou t « *p; Y^^W issp j xyBbcarHHiiH yrra xsBJisrasx 6ojiho.

OfHK) (mix aapaax apaH XYHA3BT3P >KMiU33r aB4 y3be.

i»i» i , j , * P f

t*<>i11 << i « j « endl;, out << *p « *q « endl;•»* - *q;iout << *p « *q « endl;i» • q;

•<l - 3 ;rout << *p << *q « endl; out << "address: " « p « " contains value: " << *p << endl;

;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.

3ypar 5.5. p, q 3aarnyyfl caHax omh anraaTaM OaMpna/iyyflbir 3aax

* p * * q ; YHJW I33P q-HHH 3aax 6aHpjiajibiH yrrur (i-M H H yTrbir) p 3aar4aap jaaraax 6aifpjiajia ( j xyBbcamna) ojiroHo. 3 h s yHJianHH yp^Y**1' 5.6-p aypraap

YSYY^33-

& i

p|& i}

49

Page 47: Algorithmiin shinjilgee

Eyjiaz 5

p ©

q &j I ®

3ypar 5.6. *p=*q YMflA/iaap i xyBbcarHMMH yTra j xyBbcamTaw aflmi 6ojiho.

XapHH p=q; YHJWT33P q 3aapiHHH yTra 6yioy i —hhh xaar p 3aar4HA xyyjiarAaHa. Yyhhh yp AYM xoep 3aarn caHax ohh H3r h m ji 6aHpjiaji 6yioy j-H fir 3aax 6a 5.7-p 3ypraap Avpcji3H Y3YYJIJI33-

3ypar 5.7. p=q yMJiflnaap p, q 3aamyyA caHax ohh m>kmji Gafipnanbir3aana.

9ha33C xapax roji 3YHJI 6oji *p = *q; 6a p=q; YKJWJiYYOTHH HJiraa iom.

CyYOTHHH *q = 3; YHJWI33p j 60JT0H *p—HHH y ita MOH 3 60JI0X K>M.

new 6a delete onepamopyyd

/l33p aBH Y3C3H aCHUI33HYYAHHH XyBbA 3aar4HIir 30BX0H aJIb X3AHHH TOAopxotaorAcoH xyBbcaramr 3aaxa# aiDHTJiacaH. T sitoji 3H3 xscsrr 6ha new 6a delete onepaiopyynbiH TycJiaM5KTaiiraap AHHaMHK caHax onr 3aar4aap x3px3H anrarjiaxLir y3be.

int *p = new in t; i f ( ! p ) {

cout « "A llocation error\n"; e x i t (1) ;

}

*p += 1;cout « *p « endl; delete p;

AdSpX KOAHH XSCrHHH new int T3C3H YHWJI33P CaHax OHrOOC 6yX3JI TOO xa^rajiax 3anr HeeuneH tyyhhh xaarHHr 6yuaax 6a yyhhht 5.8 —p 3ypraap

Y3YYJUI33-

*P = 3;

50

Page 48: Algorithmiin shinjilgee

Maccue 6a 3aaen

upaMMbiH X3C3rr new onepaTopoop HeeuJieH aBcaH 3aiir p 3aar4 3aa>K, ut|> yr caHax ohh 6ajapjiana 3 ts c sh yrra oJiro K 6ataa. Yyhhh Aapaa *mii ym>ir Hsrssp H3M>k xsb jiscsh 6aima. ITporpaMMHH Tercrejia p NMa noeueJDK aBcaH caHax ohh xscrHHr delete onepaTopoop hojioojdk

Jypar 5.8. n ew onepaTopoop p 3aarHMfl caHax oftro'oc 3aii HeeLyiex.

* * « oncpaTopHH apryMeHTaap C++ xsjihhh «Map4 Topjraiir o n 6ojioxooc 9MMa x jpsrJispffliffl TOAopxoHJicoH KJiaccHT 4 era 6ojiho. new onepaTop Hb UNyMeirraapaa aBcaH topjihhh ereraaHHr xaararcaxaa xypsjmsxYHii; 3anr dmi.iMMK caHax onrooc HeeiyieH TyyHHH xaarHHr 6yu,aaaar. XapHH delete «Ht|>iiTop Hb Heeu,eJiceH 3anr 4eJieeJia©r 6a yr caHax ohh 6aHpJiaJibir aaxHH Mmi aax 6ojiondktoh 6ojiroHo. Ep hi> nporpaMMa amnrJiacaH 6yx amtaMHK Mil ax ohh xscryya nporpaMM ayycaxaa HeJieeJieraijer. F3B4 caHax ohh HMMiviaJiTbir caiDKpyyjiax, nporpaMMHH HanaBapTaM aaouuiaraar xaHrax yyilH > ic new onepaTopoop HeeiyieceH caHax ohh xscnrar aurarjiaxc ayycHbi Mpaa delete onepaTopoop 40JieeJDK 6anx x3p3iT3H. TyxaHJi6aji aapaax H3rfc iX M ojianw aB4 y 3be.

•mi *p;- new(int) ;

I * . . C •

i- - new (in t) ;

i* marq Hb sxhhh new onepaTopoop HeeijJieraceH 3anr 3aaHa. Yaaax new ncpaTopoop caHax ohh ©op GanpjiajiA 3an Heeiyieraex 6a p 3aar4 tyyhhht

Max Gojiho. 3ar33p yhjiwihhh yp ayHr 5.9 3ypraap aypoisH y3YYJUi33.

3ypar 5.9. new onepaToop HeeL\enceH 3aiir HeneeneeryMreac TyyHiiMr AaxMH aiiinmax 6ohoM>KrYM 66jiho.

I [ i3px yHJizpiYYAHHH yp ayna sxhhh new onepaTopoop HeeryieceH 6aHpjiajibir Oita aaxHH ojdk aB4 4aaaxryH, uaaniHJi6aji aummax 6ojioagktyh 6ojiox yqpaac

'••Mm

p & □

51

Page 49: Algorithmiin shinjilgee

Bynaz 5

hhm aimaa rapraxaac 3aHJic xh h x 6anx X3p3iT3H.

3h3 acyynajrraH yjuwaH, caHax ohh hihhs xscthht 3aaraHA xyBaapHJiaxHH ©MHQ yr 3aariiHHr auiHrjiarAaac 6anraa 3C3Xhhf majirax X3p3iT3H. 3aan hi> HMap H3r caHax ohh xscrnnr 3aaraaryH toxhojiaojiatyyha n u ll (0 xaar) yrraOJirOX X3P3IT3H.

in t *p;p = NULL; // 3CB3JI p =0; T3>K 60JIH0.

p 3aarHHn uiHH33p xyBaapHjrajiT xhhxhhh ©mho TYYHHftr Aapaax koahh X3C3IT Y3YYJIC3HHJI3H UiaJiraX X3p3IT3H.

i f ( ! p) .p = new in t;

else { delete p ; p = new in t;

3aaen 6a &§mum

KJiaccbiH 06'beKTbir new onepaTopwH TycjraMHcraHraap HHHaMHKaap yycrsH auiHrciax 6ojiho. 3h3 toxhojiao jia new onepaTop o6*BeKTBir caHax oha xvBaapHJiaxBiH 33p3ru33 KJiaccBiH Gaftryyjiarn (J>yHKUHHr aBTOMaTaap AyyAAar. Xsp3B Saftryyjiarq cfryHKii apryMeHT uiaapAAar 6oji Aapaax 6HHJi3rHftH X3Ji63pHi^r auinrJiaH apryMeHTaap xaHraac en i 6ojiho.

p o in te r — new ty p e (a rgu m en ts );

}K h IJLI33JI63JI:

Point *p;p = new Point (3,7) ;

delete p;

3aarq aiiraniaH AHHaMHK oha YYCC3H o6T>eKTBir d e le te onepaTopoop H0J100J10X y e n KJiaccbih ycTrarq cfcyHKii; aBTOMaTaap AyyAarAar.

0 6 i3eKTBiH thihyyh 4>yHKUYYOTHr Aapaax X3Ji63p33p AyyAax 6ojiho.

p->move(3 ,1 );

3h3 hombih hxshx nporpaMMyyA hb YHAC3HA33 o 6i>eKT, tyyhhh 3aarirraH a KHJTJiax 6ojiho.

52

Page 50: Algorithmiin shinjilgee

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

Page 51: Algorithmiin shinjilgee

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

Page 52: Algorithmiin shinjilgee

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

m i k Hb TercreJi p y y

2 3 4

fc l X’UIJl'JX 6OJIHO.

| , . i u m m h h r y p B a H f l a B T a j r r H b 3 a a r H a m n r J i a c a H 6 e r e © A x a M r n i i H s x h h h

» . , m r r a M h x h j i Y P & Y h © r a e . X a p H H T e r c r e J i H H H r y p B a n a a B T a / n r a a p

* * 1 w w u v T e r c r e j i e e c H b s x j i s j i p y y

I \ 2 1 0

1 1 * x'Mvnsx 6 ojiho.

# • » x ijihmh 3aarHA33P h x s h x CTaH^apTYHJWTYYAHHrx h h x h h i seBiueepaer.

VVHA.

+ - ++ - j < > < = > = == »= 1 >> <<

n|vir YMJWiYYA xaMaapHa.

M m chbu h Hsp Hb MaccHBbiH sxJisx xaar Gaitnar TyxaHH ©mho aypbacaH. Onpoop xsji6 sji a Hb & a [03 iom. X sAH iirssp MaccHBUH Hsp Hb 3aar4

U1JUIJITaH 6OJIOBH SHS Hb TOITMOJI IOM. HhMSSC MaCCHBblH HSpSHfl XHHX Aii pa ax YHJUUiYYAHiir XOPHDIOHO.

a + = 2 ; / / 6 y p y y

\ »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

rypaB jiaxb sjieMeHTHiir 3aax 6 o jih o .

\ >psB p 3aar4 a [ i ] -H H r, q 3aar4 a [ i +13 -H H r saaaar 6 o ji p<q rs c sn h©xu©ji MMarr y h s h 6aiiHa.

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

55

Page 53: Algorithmiin shinjilgee

Byj132 5

3JieMeHTHHH yiTaH £33p i TOOr H3MC3HT3H T3HUYY YTTa 0rH0. 3h#33C OHUJIOH

T3MA3rJi3X3A MaccHBT HHfleKC33p 6a 3aaraaap xaHAax hb ( a [ i ] <=> * ( a + i)

) w k o j i HaHaprait k>m.

flapaax 6 oth h oxoh ^CHUi33r33p xoep x3M3K33ct MaccHBT 3aaniaap xspxsH xaHflaxHr Y3YYH*e*

in t a [ 3 ] [ 3 ] = {{ 1, 2, 3 },{ 4, 5, 6 },{ 7, 8, 9 }

int *pa[3] = { a [0] , a [ l ] , a[2] }/ int *p = a [ 0 ] ;

main() { int i ;f o r ( i=0; i<3; i++ )

cout « a [ i ] [ 2 - i ] « " " « * a [ i ] « " " « * ( * ( a + i ) + i ) ; cout « endl; for ( i*b ; i<3; i++)• cout « *pa [ i ] « " " « p [ i ]/ cout « endl;

flsspx nporpaMMUH sxHHii AaBTajrraap xoep xsm xssct a MaccHBbiH xaxyyrnftH AHaroHajib, 3Xhh# 6araHa 6ojioh toji AHaroHaJiHiiH 3^eMeHTYYOTiir Tyc Tyc xsbjisx 6ojiho. XapHH yzjaax AaBTaJiTaap MaccHBbiH 3XHHH 6araHa 6a sxhhh MopHHr Tyc Tyc X3BJI3H3. 9ha33c moh a [ i ] [ j ] 6a* (* (a + i) + j ) Hb H2aui HaHapTaH 6ojioxbir M3A3JK aBnaa.

3aanraH X0Ji600T0Hr00p C ++ xsjihhh hsmsjit oop hst xyBbcarmftH 3apjiajiT 6ojiox xyBbcar^HHH tojioojicoh H3pHHr (3aaJiT) sha AyptAax xspsrrsH IOM.

XyBbcarHHHH tojioojicoh H3pHHr sapjiax yea 3aaBa;i aHXHbi yrra ojitox ecTOH. A h x h u yrra ojitochooc xoh iu tojioojicoh h s p h h h yrrbir oopqjiox 6ojioM3ayfi. 0©p00p x3Ji63Ji nporpaMMUH TypniHA rH b 30BX0H i xyBbcanmnr tojioojiox k >m . 06i>eKTbir 4>yHKH3A AaMacyyjiax yeA xyBbcaraiHH tojioojicoh h s p h h t Main oproH aniHDiaAar.

int i= l ; int fir * i ; int x = r; r « 2;

// r Hb i XyBLCaFIHHH T0JI00JIC0H H3p // x = 1;// i * 2;

56

Page 54: Algorithmiin shinjilgee

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.

11ItMJX UIHH33P TOAOpXOHJIOX KJiaCC Hb MaCCHBT XHHTA3X YWC3H YHAIUIYYAHHr *i yyjiaxHH 33psru33 MaccHBHH jpapx AyrarflJiyynbir apHJirax 6ojiho. 3hh AHU133 6ojttoh 30BX0H Syxsjitoo xa^rajiax MaccHBbir KJiaccaap HJispxHHJibe.I poHXHH toxhojiaojw C++ X3JIHHH template ryJiXYYP Y ™ ™ TycjiaMXTaiiraap m Map h TepJiHHH ererAOJi# a>KHJmax MaccHBHr to^opxohjdk 6ojiox 6hji33.

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

Page 55: Algorithmiin shinjilgee

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

Page 56: Algorithmiin shinjilgee

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;

•)U3CT Hb MaccHBHH SJieMeHTYYflHftr Tacnafiaap TycraapjiaH xsbjisx print () 1 huiyyh cJjyHKHHHr TO«opxoftjn>e.

void Ia r ra y ::p r in t () {

59

Page 57: Algorithmiin shinjilgee

Maccue 6a 3aaen

|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

i* Goaaot. Yyhhh 12 Hb eep xoopoHfloo AaBTaiAaxryii 60A0M*yyA

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

11.11 ib ir 5.10 .a ) -p 3ypar Y3YYJ1C3H SaiiAJiaap m ajxraxecToft. TaBH Shahhh♦ •1 1'it iMUH o H iy io ro o c xaMaapaH maJirajiTbir 3©bx©h 6apc Oawpjiyyjiax h u i i i i M epH eec eM H ex MepyyAHHH xyBbA xhhdk 6o jih o . Y h h p Hb TyxaiiH l* a MinxeH ©MH0X MepYYA 6ape TaBHrAcaH S a taa . H hm a uiajiraJiTbir 5.10.6) »• >vi>arr yaYYJicsH Gaiyvxaap xh h x 6ojih o.

3ypar 5.10. a ) EapcHMW HYYAnwfiH xen , 6) AnropnTM fl waJirax 6a tipn an yyfl

61

Page 58: Algorithmiin shinjilgee

Fy/ix 5

fo r (in t i= 0 ; i< len ; i++) cout « a [ i ]

cout << endl;}

3 Hit ro.uopxoifaiomc o h 3apnM rHiuyyH (JjyHKUHftr ymiinr'i/ia,n 3©bx©h oiiJiroMXToii 6aiix YYAH33C 6H4C3H ynnp TSflraapHHH KOflbir eepHHHXee Hexuejifl TOXHpyyjiaH eep 'iH J i* xspsrroapaft. Tyxaiiji6aji 3JieMeHXYYflHHr X3BJ13X print () (jWHKHHHH opOHfl flaXHH TOflOpxOH JiorflcoH o p e ra to r« () ({jVHKUHHr aUlHTJiavK 60JI0X IOM.

H a p a a x S H rm iiH n p o r p a M M a a p HCHiirea 6 o n r o H iarray K J ia c c H H x a p s r J ia a r

x a p y y j ib f l .

#include <iostream.h>#include <stdlib.h>Sinclude "Iarray .h" void main() (

Iarray a (3) ; for (int 15=0 ; i<3»( i++)

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

Page 59: Algorithmiin shinjilgee

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";

Page 60: Algorithmiin shinjilgee

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

ii\)K\yn3H manraHa. check o 4>yhkh Hb 6 3 p cH ftr k f ly ra a p M epH H tt i .v>i i >p S a ra H a u n ,6 yyx .6 ojiox3C3XHftr 5.1 0 .6 ) —p 3 y p a r rY3YYJicH33p 30Bx©h oviiwx MepYVffrattm a jir a x 6 ojiho. UlajirajiTure M H e x M e p y yn H iiH 6 sp c3 3 c i ,>,•« i-jp S a ra n a H fl 6 a ttp jia ca H 3C3XHttr ( x t j ] *— i ) H e x iy i e e p , hxhji jtm w oH a jtbn 6a fipn acaH 3C3XHHT ( a b s (x t j i - i ) == a b s ( j -k ) ) H e x iy ie e p

vyc XHEDK rYftU,3TT3H3.

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

Page 61: Algorithmiin shinjilgee

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

>14mmi aaiipcaH aMap Hsr SapcHHH xeii 6 hh 3C3xniir uiajirax iom.

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.

Ujw.i'imMh *Ho i33r33p 6H ii uiHfl3T KBaflpaTbir aBH Y3be. 1 , 2 , . . . , n2 yrryyab ir M <Vi xaacyyraita flaaroHajn., 6yx Mep 6a 6araHHH 3JieMeHTYYflHHH hhhji63P• » muYY 6aftxaap 6aftpnyyjicaH nxn X3M)K33T3H MaccHBHT IHHK3T KBaapat

65

Page 62: Algorithmiin shinjilgee

Byjiaz 59n,nfl33px 6o jy io ra r lUHHflax eep nsr cohhpxojitoh aJiropHTMTait TaHtumiH. 9ira ajiropnTOfl Tycjiax rypBaH BeK'rop auraraax 6o m o . Sflresp BeicropyynbiH sjieMeirryYfl hb yH3H 6 a xyaaji (1 - yhsh, O-xynaa) yrruH ajib Haraitr aBHa. YTra nb 1 (yh3h ) 6o.u 6araHa 3cb3ji nmrotfaswyaafl, 6apc 6yyraaryii, xapHH yTra Hb 0 (xyflan) 6oji liar 6spc 6yycaH Gatina recsH yr. a BeKTOp Hb 6araHur, b BeKTop Hb xaxyyrKHH waroHasmVir, c Beicrop Hb roJi flHaroHajinftr Tyc Tyc roflopxoHJiox iom. Sflrasp rypBaH Beicropyyfl 6a maTpbiH xejirHHH xoopoiwbiH xaMaapjibir 5.12 — p 3ypraap yayYJi^aa.

b

0“ 01 1T 2T 3

J j 41 51 61 71 81 91 101 111 121 131 14

c1413 1211 10 9 a 7 6 5 4 3 2 1 0

3ypar 5.12. Bapc 6yycaH acaxMfir Toflopxotinox rypBaH Tycnax msccmb

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

Page 63: Algorithmiin shinjilgee

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-

r xyBaarflax Tsriu Toonyyn xystfl ( n = 4 k ) :

i 6u 4x4 MaTpnu;aap *n iii3 3 TaTaH TaiiJiSapjiaa. HHiuiSapYYfl hb 34 —Taii hMtuyY 6ataa .

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

Page 64: Algorithmiin shinjilgee

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

Page 65: Algorithmiin shinjilgee

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-

1 4

6 7

10 11

13 16

1 15 14 4

12 6 7 9

8 10 11 5

13 3 2 16

3ypar 5.16. (n=4) MaccHBbiH aneMeHTyyflMMr 6aPipnyynax anxwiyyfl

XhHI33JI63JI 8x8 X3MJK33T IHHflST KBaflpaTBTr y3yyjlbe. n=8, HHHJlSspYYA HB 260 —Taft T3HHYY 6ataa.

l 2 62 61 60 am 7 89 10 54 53 52 51 15 16

48 47 19 20 21 22 42: 4140 39 27 28 29 30 34 3332 31 35 36 37 38 26 2524 23 43 44 45 46 18 1749 50 14 13 12 11 55 5657 58 6 5 4 : 3 63 64

flepeBT yji xyBaaraax 6yca# xarm TOOHyy/ibiH xyBb/i (n=4k+2) :

n=6 6a 6x6 MaTpMiiaap }khui33 TaTaH TafliiSapJiaa. HHftji63pyyn hb 111 —T3ii T3HHYY 6aiina.

(1) 3flT33p Toor flepeHT xyiiaaxa/i HMarr 2 yjiflax 6ojxho. G ep eep X3n63ji hhm KBa/tparar flepeBT xyBaamax KBa/ipaTUH aflHJiaap M yxcyyiwi xyBaaxajj

3ypar 5.17. (n=4k+2) KBaflparbir Tycraap/iarn Mep, 6araHyyaaap eceH My>Knfl xyeaaHa.

68

Page 66: Algorithmiin shinjilgee

Maccue 6a 3aam

Micp Map, xoep 6araHa w ijm gm 6ojiho. 3flr33p Mep Saranyyfl hb a — i M y*yyflHr Tycraapjiasc SaMraa y'ipaac Tycraapjiarn Map, SaraHa reac mpjise. KBaapaTHr 5.17 —p 3yparr y3YY-»cH33p Myxyyaafl xyBaaa. Omhox n=4k toxhojwibih aAHUiaap a, c, e, g, i My)»cyy,n;BiH HyHHYYflwiir fioraoHe. 5.18 —p 3yparr Tycraapjiani Mep, SaraHyy^aac 6yca/i Mep, OaraiiBiH xoocoh HyflHYYAHitH HHfijiSapHftr KBaapaTBir ToiipyyjiaH xapnumx Mep 6araHBiH xapaji^aa 6hhh>k ysYY-™33- IIInnsT KBaflpaT YYcraxafl flepBeH TycraapjiarH Mep, 6aranyya TyjixyYP YYP3 rr3ft 6ereefl i )/U33pT on rorflox yrryyflB ir xoopoHfl hb C3jir3x 3aMaap xoocoh HYflHYYAHita yiTHr TOflopxoM'Be.

■ 34 i t ■8 11

24 11, |jgg

!8 s i l i l i l l l l

26 □ 29

■ 4 b

37

37

37

37

37 37 37 37

3ypar 5.18. KeaflpaTbiH eceH My>KMfir 6em ex

I'ycraapjian Mep 6araHyyflBir oHoraox yTryyaaap hb ty p Seraex 6a napaaHHHH ajixaMA T3flr3 3pnifr csjitsh eepnjiex iom. Tycraapjiari Mep 6a 6araHyyflBiH orTJioJiiyiBiH sJieMeHTYYAHfir eep'inexryH 6a 3yparr x - I jp T3Mfl3ra3H Y3YYJW33- YHHp HB T3,H XOepflHarOHaJIHHH HHHJrfjspHHH xyBBA anB X3AHHH 6aiipjia/iaa ojicoh. 3hs yftJWiHHH yp AYHr 5.19 —p iypraap Y3YY®i33-

n 2

7 X 9 10 X 12

14 17

20 $ 1 23 | g

25 X 27 28 X 30

321. 1 35 H

lypar 5.19. TycraapnarH Mep 6araHaHfl oHorflox yrryyflbir Typ onroHO.

69

Page 67: Algorithmiin shinjilgee

Eyjiae 5

(4 ) Tycraapjiant 6araHyyjibiH xyBba flapaax YiuKWYYOTitr xhhhs.a) EapyyH Tycraapjiar'i 6araHHH TOOHyya.Hr 3cpsr sp3M633p Hb

SanpjiyyjTHa.b) Tycraapjiani MepYYffHHH nyH/i opuinx Sapyyn 6a 3yYH Tycraapjiarn

6araHbiH sjieMeHTYYOTHr xoopoHfl (Tyxaiin Mepenn) Hb cojihho.c ) KoaapaTbiH roji xsbtss TSHXJrerHHH aoofl MepHHH Tycraapjiar'i

6araHyyabiH 3JieMeHTniir xoopoHA Hb cojihho.

Sarssp YW^zuiHHr 5.20 —p 3ypraap \3yynn33.

2 — J5 2 35 37 - • 2 35 > 2 35x - , \ . - | S

X X X X X X 8 11 : ‘ ,8”;.'->-ii i14 g i g

fv'2331 14-*->-23 23 14 J4*,23'b 14 f t i S i l i i l -14

20 43 20 <->-17 37 y 17 20 17-t-»-20 • 17X X X X X ■'x 26 29 26 2932 -i-35 6 7 32 5 37 y '* 32 5 32 5 ~i 32 568 80

■ a -*

68 80b -*

74 74 108 114 111/111-

¥ "©**■ - • ' $

3ypar 5.20. Tycraapnarn SaraHyyflbiH xyBbfl xmmx xyBMpramyyfl

(5 ) M eH 6ycaa M y*nzi jjapaax YHJuyiyYOTHr xhhhs.a) B 3CB3JI H MV>KHHH H3r MepHHH SJteMeHTyYOTftr 3Cp3r 3p3M633p

SatipjiyyjiHa. (TyxaiijiOaji. 34 4—> 33)b) d 6a f M w yya w H HMap H sr hjjkhji M epn iir coHroH, sJieMeHTyYflUHr

scp sr 3p3M633p co/ihh 6aftp.nyyjiHa. (TyxaHJi6an, 18 13)

H 2 33 34 35m8 11

24 23 -ft 14 i f13 20 Hi 17 i f

26 29

H 32 4 ,3 5 942 38 36 32

3ypar 5.21. 5-p anxMbiH yp ayh

9.ar33p ywjijuihhh napaa 6araHyyiibin xoocoh sjieMeHTyyOTHH HHH/i63p Hb oep xoopoH/ioo njiraaTan 6aitHa. (42-38-36-32) 3 h s HJiraar 6hh 6.a aJiXMaap apHJirax 6ojiho.

70

Page 68: Algorithmiin shinjilgee

Maccue 6a 3aas't

1)n i.iap/iarvt MepyyaHHH xyaba aapaax YH W iYY flH iir xhhhs. 5.22 —p lypm ap 3H3 yh jw iyYAH hh xn iira sx a^xM yyaur Y3YY^Ji33.

I ycraapjiar^ Map 6yph hh sneMeHTYYAHHr acp sr sp3M633p c o j t d k fiaiipjiyyjiHa.

I>) I'ycraapjiara SaraHyyaHH xoopoH a opuiHx TycraapnarH MepYyaKHH jJieMeHTYYAHiir xapraraax 6araHaHa Hb cojihho.

< I 1 ycraapjiarq MepyyaHHH XaMrHHH sxhhh aaeMeHTYYAHHr xoopoHa Hb COJIHHO.

12 X: 10 9 x 7 j 38

t t ' m a m b -+T' T '

30 x 28 27 X 25 | 110

42 38 36 32 I

•;3(3j •$ >28||7: • 11 S l I l t l l i f E

h 26 10 9 29 25 I 111,

3ypar 5.22. Tycraapnam MepYYfln H xyBbfl xuiirflax YMJiflnyYfl

yea flsspx 3ypraaH ajiXMbiH aapaa YYC3X uinasT K B aapam r 5.23 —p typmap Y3YYJHI33-

2 33 34 35 |.Gi>30 8 28 27 11 72413

2320

IBSP i

1417

«#;ri8

12 26 10 9 29 2531 32 4 |3- 5

3ypar 5.23. n=6 ainflar KBaapaT

>KnUJ33Jl63JI 10x10 X3MX33T HIHa3T KBaapaTbH Y3YYHb£. 11=10, H H feS sp Y Y fl

iib 505 —Tail T3HHYY 6attHa.

7 X 9 10 x 12

25 X 27 28 X 30

32 36 33 42

110

12 8 28 2/ 11 7

t H | I i30 26 10 9 29 25

i l P l M i

■ 93

■129

71

Page 69: Algorithmiin shinjilgee

Eyjisz 5

1 2 3 94 95 96 97 98 9 1011 12 13 87 86 85 84 88 19 2080 29 23 77 76 75 74 28 22 2170 69 68 34 35 36 37 33 62 6160 59 58 44 45 46 47 43 52 5141 42 53 54 55 56 57 48 49 5040 39 38 64 65 66 67 63 32 3130 79 73 27 26 25 24 78 72 7181 82 83 17 16 15 14 18 89 9091 92 93 7 6 5 4 8 99 100

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

Page 70: Algorithmiin shinjilgee

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

Page 71: Algorithmiin shinjilgee

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 .

Page 72: Algorithmiin shinjilgee

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

idu \\ )ivrpYY^3X Hb XHJi6apxaH.

a«\i\ \ iib MaccHBbiH a&mi uiyraMaH (AapaajicaH) 30XH0H 6anryyjiajnraH lillTy\JWlftH OJIOHJIOr K)M. XapHH MaCCllBblH 3JieMeHTYYAHMH 30XH0H> v murr iib caHax oha A3c AapaanaH Gatipjia^c, sjieMeHTyyAHHH HHAexcssp (iniiniar TOAopxoiiJiAor. M © h MaccHBbiH xsMatssr nporpaMM aaauuiaxbiH no \ v >jvopxoiiJicoH 6aiix Sctoh 6a nporpaMMbiH aaaouiax ABuaA AaxHH . . -.n\ 6ojioM>KrYK iom . 3 h 3 yrraapaa MaccuB ct&th k ererAJiHHH 6yT3U* \ >vb3J| TKarcaajiTbiH 3JieMeHTY¥A X3AHiir33p (uiyraMaH) AapaajicaH

GaiiryyjiajiTraR 6ojiobh 3JieMehtyyA Hb caHax oha A3C AapaajiaH \.vx ajiGaryn, uaauiHJi6aji >KarcaajiTbiH 3JieMeHTyyA Hb caHax oha (heap)

MiiuMWKaap yycA^r. Oepeep xsjiGsji nporpaMM a^KHJUiax HBnaAacarcaajrrbiH , »vi i ) oepHJierAox 6ojiom3ktoh. >KarcaajiT Hb hhts k. AHHaMHKaap 3oxhoh ItlityynaniAar ynpaac 3JieMeHTYYA3A xhhtasx yiiJwiyyA Main y*iH xaTaH, inm'ivoft. ryHU3Tr3rAA3r. ,H,HHaMHKaap yyccsH 3JieMeHTyyAHHH Aapaajuibir lonftooc 6yioy 3aarnaap TOAopxoHJiAor. ©epeop xsjiSsji 3JieMeHT 6yp >» »i juiooc raAHa AapaaHHHH sjieMeHTHiir 3aax aaaxHHiir uyr aryyjmc SaiiAar.* rt\ eaajrrur xoji6oocoop Hb H3B xojidoocm, xoep xonooocm. daemajimmau rsx %i »\ .v\irvui>K6ojmo. KarcaajiTMH 3Ar33p OHiyior miimK, AaByy TajiyyAbir 6ha Ti\\\A XHOTA3X yHJiAAYYAHwr cyftiiax aBuaA xapax 6ojiho.

l\ o r x o j iS o o c t m a r c a a j r r

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

75

Page 73: Algorithmiin shinjilgee

Byjiaz 6

3aHrajiaaHH xaanriir aryyjiHa. TsMAsrTyya xaarajiax TaBaH saHranaa 6yxntt H3r xoji6ooct acarcaajiTbir 6.1 3ypraap ysyyjisB.

head (m om o u )

n

H A 13 ~ :H L I + - 4 ] B H s I + - > p r F 1 1

3ypar 6.1. Hsr xon6oocT warcaanT

^CarcaajiTMH 3aHrHJiaaHbi er©ra©Ji Hb 6yx3Ji too , 6oaht too , tsm as it Mep 33p3r yhacsh ©rerajmira TepjiYYa©3c ra^Ha xspsnisrqHHH ToaopxoHJicOH AMap h TepjiHHr aryyjDK 6ojiho. Bh^hmh >khiiis3HHH xyBba 3aHrajiaa 6yp Hb H3r TSMasrr aryyjDK 6aima. XapHH 3aHTHJiaaHH xoji6ooc 6yioy 3aarq Hb AapaawHH aaHnuiaaHbi xaanm r aryyjiax 6a 3H3 Hb asspx 3yparr cyMaap aypcJisracsH 6aiiHa. 3ypraac Ta 6yx3H xoep OHiyior 3yiumHr aaoirjiacaH 6anx. YyHa, )KarcaaJiTLiH xaMrHHH cyyjniHH 3aHrnjiaaHH 3aarn Hb n u ll tscsh Tycraft yrrbir 3aaBaji aryyjicaH 6anx ecTOH. XspsB shs 3aarn AMap h s t 6ypyy xajir aryyjDK 6aiiBaji TaHid nporpaMM 6ypyy axauuiax ajmaaHa xypsxHiir aHxaapax xspsrrsH. n u ll 3aarq 3yparr x TSMasrJisrssrssp /TYpcjisracaH. ^apaawHH Hsr 3yh/i 6oji acarcaajrrbiH sxhmh 3aHrHJiaaHH xaarHiir aryyjiax moMou 6yioy sxnsji tscsh 3aar4 iom. H sr xoji6ooc t xarcaajiTHH aJiHBaa 3aHrHJiaaHA xypsxhhh Tyjia acarcaajiTHH sxhhh 3aHrHJiaaHaac 3XJI3H xoji6oocyyabra TycjiaMXTaHraap aapaajiaH xaHaaac xyccsH 3aHrajiaaraa ojdk aB^ar. Hhma Tojiroii 6yioy sxjisji Hb HMarr xarcaajrrbiH sxhhh 3aHnuiaar 3aa>K 6anx ecTOH. H sr xoji6ooc t xarcaajiTbiH 3aHrajiaaHyyaaa sxjisjissc Tercreji pyy tscsh HHnisjia aaM)KHH xaHaax 6ojiomjktoh. XapHH scpsr *mrjisjia 6ojioMacryH iom. G epeep xsji6sji Tyxaira 3aHrHJiaaHaac tyyhhh 6MH6X 3aHraJiaaH# xaHaaxhm Tyjia aearcaajrnjH sxjisjissc aaxHH ryiCK ©mh©x 3aHrajiaar ojdk onaor. Hhmssc li acarcaajrraa ihhhs sjieMeHTHHT xcarcaajimH aMap Hsr sjieMeHTHHH apa opyyjiax Hb xaji6ap 6aiiaar. S h ^ssc 6na xarcaajiTHH k ayrssp sJieMeHTsa mbcchb urar a [ k ] rsac m yya ohhx 6ojiom3ctyh 6oJioxbir xapx 6ojiho.

H s r xo ji6o o c t xcarcaaJiTHr C + + nporpaMMHJiajiHH xsjisH a xspxsH H3BTpyyji3XHHr aapaax nporpaMMHH tcoaHH xscryyassp TaHJi6apjiaa. Ehahhh aB4 Y3sx acmiissHHH acarcaajrr Hb TSMasrryya aryyjiax iom. )Karcaajrr Hb TyxaHH 6oanorHH maapaJiaraac xaMaapH AMap h t©p©jit3h 6aHDK 6ojiho. Hhmssc xarcaajiTHH sjieMeHTHHH TepjiHHr xaji6apxaH ©epqjiex yyaHSsc

typedef char Data;

Page 74: Algorithmiin shinjilgee

JKaaccicuim

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

t i-uyyhsh O aiip jiyyjiax y h w ih h p con iipx 'be. 3 h 3 YWJiAJiMHr MaccHBT WXA33 T y x a to 3JieMeHTHHH opox 6aiip jia jiaac xoh u i s jicm ch t 6yphhx 1 n /K y Y ^ ©rex inaap AJiaraxaH GojiArHHr typyy^hhh 6yjrr33c M3AC3H 6h ji3 3 . ,1111 )KarcaajrraA 3H3 yhTO3ji Hb epAee rypBaH 3aarnHHH yrrb ir cojihjiu;oxqa

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

Page 75: Algorithmiin shinjilgee

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

3 h h >KarcaajiTMH aypH H 6aHpjiajia u ihh3 3JieMeHT opyyjiax Tyxa ii apw raax 6o jih o . TyxanJiGaji 6.1 3yparr e re ra c e H H3r x o ji6 o o c t x a rca a jr ra H 1 6a s BJieMeHT 6yxHH 3aHrHJiaaHyyabiH xo op oH a x 3JieMeHT 6yxHH 3aHrHJiaar op yy jra x yHJWiHHr 6.3 ayraap 3ypraap y3yyjui33. (3 h a 6n a ©reraJiHHH y rra hb x 6aHx 3anm/iaar x 3ann-iJiaa rsac X3JI3X 6 o jih o .) Y yh h h Tyjia x 3aHrHiiaaHbi 3aarH Hb s 3anrHJiaar 3aa>K, aapaa h l i 3aHniJiaaHH 3aarq x 3aHmJiaar 3aaHa.

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.

H b t xo/i6 o o c t x a rc a a jr r a a iu h h s 3J iem ehthegt acarcaaJiTHH aM ap H3r 3JieMeH rawH apaap opyyjiax Hb HJiyy xa ji6 ap 6 o j io x lt t omh© ayp tflcaH 6hji33. 9 h 3 Hb xarcaajTTbin avpw H 3iieMeHT3/i uryy/i xyp sx 6oJioM5KryH, ToapyyJi6 aJi .TyxaHH 3JieMeHT33c tyyn K tt om hox 3;ieMen rsa lijy ya xypsx 6ojK>MXryHT3*i xo ji6 o o to h iom. H s r xo ji6o o c t >KarcaajiTa,n 3JieMeHT opyyjiax aapaax in s e r t ( ) (J)VHKHHHr a W y3be.

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

Page 76: Algorithmiin shinjilgee

}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

Page 77: Algorithmiin shinjilgee

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++) {

l i s t . reset( ) ; list .in sert(e lm );

.} ^

9h3 M3T1JI3H curr 3aaniHHH rycJiaMXxaftraap xyxaiiH 60flJi0rMHX00 hoxhojia ToxHpyyjiaH opyyjiax 6aftpjiajiaa coHrok, iuhhs sjieMeHTHiir xarcaajrrbiH xaaHa h opyyjix 6ojiho.

M a e c a a jim u z x s e n s x

H sr xojiSooct acarcaaJiTHH sjieMeHTyyHHiir xsbjisx m> Mam xaJi6apxaH. 3 h3 Yiin/yiHHr epflee acarcaajrrbiH sxjisjissc TercreJi xypTSJi ryitx rann .naBxajixaap ryiiusxrens. Hhm AaBxajixtir acarcaajrra# xhhx 3apHM YH W iYY^fl aumrjiajiar. TyxaH ji6aJi *arcaa jixaac sjieMenx xailx, xarcaajixMH sJieMeHxyy/iHftr 3p3M63Ji3x 3spsr yttJifljXKPir AypwaJK 6ojiho.

XarcaajrrHH 3JieMeHTyy,2iHHr xsbjisxass acarcaajiTMH sxjisjissc Tercreji xypxsji xoJi6oocyyflHH xycjiaMacxaftraap jiapaaliHHH 3JieMeHXY¥fl3fl o ih h X3BJI3X IOM. X3BJI3X (JiyHKUHHH KOflHr flOOp Y3YYJIJI3S.

void LinkedList: .-print () { setF irst() 1 While(curr) {

cout << curr->element << endl; next ( ) ;

)|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

Page 78: Algorithmiin shinjilgee

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

Page 79: Algorithmiin shinjilgee

£yji32 6

6anx ecTOH. Gepeep xsjiSsji curr saarraira 3aax 3aHrHJiaaHH aapaa<mftn 3aHrMJiaar ycTraHa. 3Ha MeH ycTrax 3aHrHJiaa hb acarcaajiTHH 3X3Ha, ayna, Tercrejia YY rsarwHr aHxaapax ecTofi. H sr xoji6ooct xarcaajrraac 3JieMeHT ycTrax remove () (J)yHKUMHH KO^BIH X3Cr33C aoop Y3YYJIJ[33- 3 h 3 6.3ayraap ayparr y3YY?TCH33P X 3aHrnjiaar ycTraxBiH Tyjia curr 3aarn hb i 3aHnuraar 3aax 6anx ecTOH.

Node *temp;temp=curr->next;. curr^>next=temp->next; delete temp;

^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.

head (m om o u )

3ypar 6.4. flaBTamraM Hor xoji6ooct warcaanT

M©h yyh33c raaHa 3XHMH 3aHrHJiaar (scbsji Tercre jfflta 3aHrmiaar) Tycraft 3opnyjiajiTaap auiHTJiaac 6ojiho. HJim acarcaaJiTBir to jitoh sjieMeHTTsii acarcaajrr rs)K ohujioh y33X h ToxnoJiaoJi 6anaar. Fscsh xsaHH 4 Koa^HJiojiMH 6ara 33prHHH ajiraar Y-tf aHxaapBaji 3Ha typyy^hhh Hsr aaHJi 3YHJI apnraax 6ojiho.

82

Page 80: Algorithmiin shinjilgee

sKaecaciAm

|0 #p x o j i6 o o c t a c a r c a a jr r

H « *o/i6ooct Karcaajrra# yHHp'i 6aiicaH acyyjyiyyapbir xa;i6apTiJiax yyAH33c wcm h iaa 6ypr^apaaTOHH saHiHJiaar 3aax aaar^aac ra^na, ©mhqx 3aHrajiaaraa *♦•«« mai Mvmr H3M)k o t h 6ojiho. Mhm acarcaajnw xoep xojiGooct jKarcaajrr |H Ait 6 5 3ypraap Y3yyJUl?3,

heed (m om ou)

3'ypar 6.5. Xoep xon6oocT warcaa/iT

•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.

Isa DoubleLink {D/ita element Link *prev, *next;1.ink (const Data ©value, Link *pvalue=NULL,

Link *nvalue=NULL) { element =evaiue;

next=nvalue; prev-pvalue;

tUpHH DoubleLink iOiacCT a^KHiUiaX DoubleList KJiaCCLIH 3apJia7IT 60JIQH >n m KnyyAwr yHiiiHr1! ran# yji#3 3 e. X o e p xo;i6ooct acarcaajrra# xhhx yiuifl3Ji i* »i3r xoji6ooct acarcaajrra# xhhx yittfA3JiT3H T©ce©T3ft 6ojiobti H3M3JIT prev

m p i w f t r aHxaapax e c r o n . T yxa to6aji, x o e p xoji6ooct acarcaajrraac sjicmcht i rrax YHJWiHHr 6.6-p 3ypraap yayY^^^-

head (momoO) curr

3ypar 6.6. Xoep xoji6qqct warg^amaac aneMeHi ycTrax

83

Page 81: Algorithmiin shinjilgee

Byrne 0

Xoep xoji6ooct >Karcaa;naac curr 3aariJHMH rycJiaM)KTaHraap 1 3aHrmiaar ycTrax yhjixltiwhh napaajumr coh Hpoxurooe. curr 3aarli Hb ycTrax i3aHr*uiaar 3aaHa r3>K y3be.

(1 ) 1 3aKri'iJiaaHT>i qmuqx l 3aHnmaaHBi next 3aar4 hb i 3aHrHJiaar ajiracn s

3aHrHJiaar 3aaHa.

curr->prev->next = curr->next;

(2) i 3aHrwjTaaHH napaaHHMH s 3aHiHJiaaHbi prev 3aara Hb 1 3aHrHJiaar ajiracH l sanrtfjiaar 3aana.

curr->next->prev = curr->prev;

(3 ) 3 u 3 c t Hb 6ha i 3anrHJiaar caHax oiirooc hojioojdk 6ojiho.

delete curr;

LI1hh3 3^eMeifTHHr xoep xo/i6ooct xarcaaJiTbiH TyxaiiH 3aHrHJiaaHbi om ho 3CB3JT xohho opyy/iax Hb 3apHMbiH xyBbfl azuHJixan yvuijxsn XHHrA3H3. 6.7-p 3ypraap iuwh3 3anrHJiaa x -w iir 1 3aHrHJiaaHbi xoftHo opyyjiaxbir Y3yyjui33. 3 h 3 yea curr 3aar*i 1 3aHrwjraar 3aaac 6aima.

curr

3 y p a r 6 .7 . X o e p xoh6ooct warcaamaA a n e M e w o p y y jia x

fOvHbi ©mh© IUHH3 3JieMeHT x —wirr aryyjiax iuhh3 3aHrHJiaa new node saHniJTaar caHax oiiA

new Doub.leLink( 'X' ) ;

r3)K yycr3C3H 6aftx ecToii. Yyhhm jiapaa jjoopx YHTOJiyyOTiir a3C aapaaJiaH r y i i i i3 T r 3 > K 6ojiho.

(U new_node->next = curr->next; f .) new_node->prev = curr;

84

Page 82: Algorithmiin shinjilgee

sKasccicuim

III now_node->next->prev = new_node;|4) • urr->next = new_node.;

%/t xuftrjpx yhjw iyyahhh aapaajiaji hb Main qyxaji. Tyxanji6aji (4) curr-• xt = new node; YHTO^Hr XaMrHHH TypYYH-fli XHHB3JI (1 ) 6a (3 ) yHJWIYY^

•ypyy YPAYHflxYP3X6ereeA3AT33pHHH ( 1 ) new_node->next =* curr->next; f»tn;t;i33p eepee eepHHree 3aax 6ojiho. U,aaiHHJi6aJi s 3aHrHJiaaH# o*mx ft»» ioM>KrYH 6ojiho. Hhma y^WIHHH AapaaJiJtBir aHxaapax X3p3iT3H.

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

Page 83: Algorithmiin shinjilgee

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.

6.8-p 3yparr Y3YYflC3H acareaajrrbiH ereriUiHHr aapaaxJiaap Hb XBases;! ‘l ’, ’ i ’ , ’ s ’ , ’t ’ F3C3H T3H£(3rrYYrtHWr X3BJI3X 6ojiho.

/KarcaaJixbi i' 3aai'i aiiiMraaH H3Brpyyfl3x YeA hihhs 3JieMe»r opyyjiaxaaa C++ xsjihhh new onepaTopHH TycjnaMxcTaftraap AHHaMHK canax onrooc 3aii HeeHJieH aBlr aiHHraaac GaMcaH. Tstbsji acarcaaJiTbir MaccHBaapraspxHitox Yea IHHH3 sjieMeHTHMr xspxsH opyyjiax, tyybhjim* asarcaajrraac ycTracaH sneMeHTYYflHHH xspxsH flaxHH ammviax raea^acyyflasiaBHrflax 6ojiho.

6 .8-p 3ypraac xapaxau MaccHBHH sneweHTYYflHHH H3r X3C3r HbacarcaaJiTajt auiHraarflax, yjwcsH xscar Hb auiHraarflaarYH xoocoh 6a*Ha JCareaajiTaA opox hhht sjieMeHTHHH too Hb MaccHBbiH xsncKSsraap xiEsaapjiaraax yHHp111 h H3 3JieMeHT apyyjiaxsaa MaccHBHH auiHraaraaarY».6aHFaa sjieMeHTYYflssc

86

DATA

Page 84: Algorithmiin shinjilgee

jK a a c c ia jim

jum niaHa. YyH H ii Tyjm MaccHBHH auiHrnaraaarYii 3JieMeHTYYWHr aryyjiax fttit liaracarcaajrrbir33psr aBM aBax maapfliiaraTaH. 3hsacarcaajiTHH 3oxhoh n.iiiryyjiaJiT Sojioh aaouuiax 3ap'iHM Hb start iKarcaaJirralt ajiHJi 6e re e ji• .11 cuajixbiH 3XJi3JiHHr Avail xyBicarnaap xoAopxoHjrbe. start >KarcaajiTaac uM.ip H3r sJieMeHT ycTrax YHJfflsJiHb MaccHBHH yr 6aiip jiajiH r amHrJiaraaaryii ■»/ic MeiiTYYflHHr aryyjiax Avail xarcaajrra fl opyyjiax yh jw s jitsh xaMT xhhthsx him. M oh s ta r t jRarcaajiTafl ihhhs sjieM eH T op yy jiaxH H Tyjifl A vail A.ucaajiTaac H3r sJieMeHT ycTrax yromJiHHr flaBXap xhhx 6ojiho.

yKarcaanTbiH xaparjiaa

/Ka rcaajrr hb KOMiHObxepHiiH nporpaMMHJiajifl Maui epren amnrjiaraax nyxaji n io i’AM HH Sy tsh iom. Bha xarcaajiTHH ojioh xspsnisar AapaaiM iiH <iyjirYYA33c xapax Gojiho. XapHH 3H,n 3apHM acnmssrssp xarcaajiTHH* ip irji33 Sojioh tyyhhh aaByy TajiyynjaH TaHHJiuax Sojiho. 3xhhh aBM y3sx a ii i U33 6oji n xyjiraH wr Myyp m ajixaMxanraap toojioh m flsx xyJiraHa OypHfir HJ1B3J1 xaMraHH cyy-W HMap flyraapra ii xyjiraHa yjijisxHMr oji. (n xy/iraHbir i- u c n xypt3 ji flyraapjiacaH 6a fir.)

)M3 6oflJiorHr m ecchb amnrJiaH xspxsH 6o flo x u r coH H poxnrooe. H h h t xy/iraHHH too n = ioo , ajixaMbiH too m=7 r e x e r e ra ce h 6aftr.

mt *mous@ = new(N] (1) ;

il’jspx 3apJiaJiTaap aHXHbi yrra Hb 1 6anx 100 3JieMeHT 6yxhh mouse MaccHB i oflopxoHJiorfloHo. 3apHM komhh/ihtopt Asspx X3ji6sp33p aHXHH yTra ojiroxbir 30BmeepflerrYH. Tsp ToxMOjmo/ri

!or(int i=0; i<N; i++) *(mouse+i) * 1;

i j>k aHXHH yrra ojitox 6ojiho.

XspsB HMap H3r i .nyraapraH xyjnaHa HosracsH tsbsji MaccHBHH xap ra jm x (JieMeHTHHH yrra mouse [ i ] ft 0; 0OJIOXIOM.

Myyp n -i xyjiraHa hucshhh ziapaa yrra Hb 1-tsh T3HHYY 6aiix MaccHBHH jjieMeHTHHH HHAeKC Hb ytosx xyjiraHbiH ayraapwr hjittshs.

int i,M,N, eta, step, *mouse;cout « "How many mouse: cin » N;cout « "Step: " ; cin » M;

Page 85: Algorithmiin shinjilgee

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; }

int isLastO { return curr == curr->next; ) void lastMouse() {

cout « ''Last mouse: " « curr->number « endl; }

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);

Page 86: Algorithmiin shinjilgee

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

Page 87: Algorithmiin shinjilgee

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

Page 88: Algorithmiin shinjilgee

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( ) ;

>m list. lastMouse( ) i

I

flsspx nporpaMM/i hot xoji6ooct Karcaajrrbir Mouse 6a MouseList KJiaccyyaaap TOiiopxoHJiOB. BofljiorbiH Hexiiojw TOXHpyyjiaH nsr xoji6ooct xarcaajrrafl a>KHJUiax 3apnM niuiyYir cjjyHKHYYOTftH H3p 6ojioh KOflon,eepluiejiT xhScsh. TyxafluiSaji xynranbrr hzisx rsjrsr yrraap xarcaajrraac sjieMenTHHr eta () 4>yHKii33p ycTraHa. is Last () 4>yHKU Hb acarcaajrraji raHU 3JieMeHT yjwcsh 3C3XHHr mail rax 6a raHU. 3JieMeHT yJi5C3H toxhojijiojiji tyyhhh yrrtir LastMouse (S cj)VHKUHHH TycjiaMXTaiiraap xsbjisx 6ojiho. Farm aneMCHT aryyjtax 4aBta#rra& H3r xoji6ooct xarcaajrrbiH rami aJieMeHTHftH next 3aar4 Hb eepHHree 3aaaar oHiuiorHitr auiHraaH isLast () cjjyHKH hb majirajrrHT \nibK 6ai4Ha.

9h3 Oonjiorwr uiHiicoxszt aumraacaH xoep e ep aprbir xapbiiyyjiaH xapaxafl MaccHB auinniacaH nporpaMM Hb acarcaajrr anrarJiacaH nporpaMMaac GorwHoxoH 6oji)k 6afiHa. F3C3H xbjihh h 6(W3H/i 3H3 xoep ajiropHTMHH ajib iib xypziaH xapiry erex Hb hjiyy nyxajt 6hji33. O p o jith h erenyiHHH X3M*33

)0

Page 89: Algorithmiin shinjilgee

Maacaanm

tit It x YHJWi33p TOflopxottxtorflOHO. >KarcaaJiTHH 3aKrnJiaa hb Asapx Pnode 0 ytU )3 p TOflOpXOJ0tJIOrflOX OJIOH rHIHYYHT 60JI0H TYYHfl XHfirflSX 3apHM •I'MtjiMCTHK YHJWiYYAHHr flapaax poiynom KJiaccaap 3apjia>K 6ojiho.

CIaas Polynom{Pnode *pln;

public:l'olynom() { pin = NULL; } void in sert(in t c, int e ) ;friend Poiynom operator+(Poiynom &pllr Poiynom &pl2);friend Poiynom operator-(Poiynom &pll, Poiynom &pl2);friend Poiynom operator*(Poiynom &pll, Poiynom &pl2);ri iend Poiynom operator/(Poiynom &pll, Poiynom &pl2);friend ostream & operator«(ostream &out, const Poiynom &p);

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,

Poiynom

mK03cp<puu,ueHm 3P3M63

12 5 3— [r

-1 1 1 0

3ypar 6.10. p(x) ojioh rwuJYYH™ ^r JKarcaanTaap unapxnfinax

l.ipaax (JjyHKUHHH koaoop insert () 4)yHKJiMr TOAopxoiiJi'be.

><)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

Page 90: Algorithmiin shinjilgee

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

Page 91: Algorithmiin shinjilgee

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

Page 92: Algorithmiin shinjilgee

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

Page 93: Algorithmiin shinjilgee

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

Page 94: Algorithmiin shinjilgee

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

97

Page 95: Algorithmiin shinjilgee

Byjaz 7

OreKHftr MaccHB aumrjiaH HSBxpYYJrex

CTeKirttr ojioh jth3hh apraap hsbtpyy^* Sojiox 6ojiobh hxsbhjhh uiyraMaH MaccHB, 3CB3JI H3r xoji6ooct )KarcaaJiT aiimr/ia/iar. 3hs xscarr cTeKHttr MacciiB amnniaH xspxsH H3BTpYY-’i3XHHr aBM \3be. Hhm ctck Hb craTHJcaap Toflopxott^orflaor. flapaax stack kjibcchh 3apjiajrraap Maxsize X3MX33T3H stack MaCCHB, CTCKHHH opottr TOflOpXOftjIOX top XyBBCarH 6OJIOH CTCKSfl 3JieMeHT XHiix push () 4>yH*n, cxeK33C 3JieMeHT aBax pop (> 4>yHKU, 6ycaa rycjiax (JjyHKiiYYflHitH xaMT roaopxoftJiorflcoH 6aftHa. stack MaccHBur 3aanaap ToaopxoitJicHoop ahhbmhk oftrooc new onepaTopHH rycnaMJirrafiraap Maxsize X3*OK33T3# 3aftr stack maccuH o&beicr 3apjiax Yea Heeu.TOH aBHa. 3hs hi. xaaHitrasp aaarq auiHnia*: Saflraa 6ojiob«i xyBaapHJianr XHftcHsac xoftrn fjfifHHflt X3MX33 Maxsi*e-aac xsrpsxryft ryji cTaTHKaap Toaopxofijrorflo>K GattHa.

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 , ! , ) * - -

Page 96: Algorithmiin shinjilgee

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

99

Page 97: Algorithmiin shinjilgee

Eyjix 7

I

top----------------^

[~S [ T | A [ C J ^ [ H |1 2 3 4 5. . . n

3ypar 7.4. n=MaxSize xsmxostsm MaccHBaap TOflopxoMnorflox creK

opcoH) sjieMeHTHftr aBCHaap crex xoocoh Sojiho. Hhm ssc sneMeHT aBax 6ypt ctck xoocoh scaxuflr, sjieMeHT xhhx 6ypt cTeK AYYP3H 3C3XHiir uxajirax xspsnsH . S h s majiranTMr empty () 6a ful l () (JiyHKUYYflssp Tyc Tyc ryftHSTrax

6ojiho. Sflrasp <J>yHKHHHH KOflbir floop yiyysmsa.

template<class Type> bool Stack<Type>: :push(const Type item) { i f ( f u l l ()) {

cout << "Stack is fu ll" << endl; return false;

}else {

stack [++top] = item; return true;

} W B S 1 ■}

templatecclass Type> bool StackcType>::pop(Type &item) { i f (empty()) {

cout << "Stack is empty" << endl; return false;

} - ' else {

item = stack [top--] ; return true;

templatecclass Type> bool Stack<Type>::empty() return top < 0 ? true : false;

templatecclass Type> bool Stack<Type>: : fu l l () { return top >= MaxSize-1 ? true : false;

}

.flsspx stack KJiaccblH xsp3rji33r 3H3 6yJirHHH Tercrejw aBH Y3SX xaajiTHH 6anaHC manrax 6o/yiorooc xapx 5ojiho.

Page 98: Algorithmiin shinjilgee

CmeK

CreKHHr acarcaajrraap HJiapxHHUiax

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.

i ■•mplate<class Type>( I ass Stack {

struct Node{Type data; Node *link;

) ;Node *top;

imblic:Stack() { top=NULL; )-Stack() {

Node *temp; while (top) (

temp = top; top = top->link; delete temp;

>

bool push(const Type item); bool pop(Types item); bool empty( ) ;

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 ;

Page 99: Algorithmiin shinjilgee

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

iom.

Page 100: Algorithmiin shinjilgee

CmeK

Ctckhhh xaparjiaa

CTeKHHH xapsnresr Aapaax xsflsH XHUissrssp hui xaTaH TaHn6apjiaa. 3xhhm >KHui33r33p apaBTHH toojuihh chctcma ererflceH 6yx3Ji Toor xoepraH i oojioah uiHJL YY-fsx 6o/uiorbir ctck auinr^an xapxaH uiMKiraxmir xapuraan. •Jus GoAJioibir 4 —p SyJirssp pexypc aumniaH hsbtpyyjicsh. XapHH 3h/i CTeKHHH TycjiaMiKTawraap peKypc aiuHrJiaxryH ihhhasx: 6oiioxbir \i\xnn33. ApaBTHH TOOJIJIHH CHCTeMHHH TOOT XOepTHH TOOJIJIHH CHCTeM PYY x»pBYY->i3Xfl33 yr to o t xoepT xyBaaH yjiAsrAHHHr ats'i, 6yx3.ii X3crnvir ziaxHH xoepr xyBaaH yJWarflJiHftr aBax 3aMaap 6yxa;i xscraiir TsrreH tshuyy 6ojitoji naBTaH YJiA3rflJiYYAHHr aBax 6a Y-WaiWiYYflHiir raprax aBcaH AapaajuiHHX 11 b acpar 6aftpjiyyjiaxa,n xoepraH toojiojia xepBeceH too rapn npii3. Oepeep nil6sji xaMrHHH 3xhhh ynjiaraaji xoepraH toojuihh chctcmhhh toohh xiimthhh cyyJi'HiHH opoH 6ojiox 6a xaMrHHH cyyjiA aBcaH yjiasi'asji Hb XaMTHHH 3XHHH OpOH 60JIfl0r. HhMA6YX3JIX3C3TT3IT3H T3HIIYY60JIT0JI XOepT xynaaxflaa rapLi npsx yjiAsrAJiyyAHHr ctckt xhhtssa, napaa Hb 6yx YiiAanymiir c i eK33c rapraH xsbjrxsa xoepraH toojiojia xepBecen too rapax 6ojiho. 3hs (itwiorbiH nporpaMMHH Koztbir Aoop y3yyjiji33.

void m ain() {S tack<in t> b in a ry ; in t n; char ch; do (

cout « ” n = " ; c in » n ;

w h ile (n ) {b in a ry .push(n%2) ; n /- 2;

)while( Ibinary.empty( )) {

binary.pop(n); cout « n;

)cout <£ "\nMore (Y or tJ) ? i f c in » ch;

I w h ile ( c h = 'Y ' [ I ch == ' y ' ) ;

,'l i >px nporpaMMA b inary CTeKHHr stack 3arBap iciiaccbm 6yx3jxtoq xannuiax■ /tt-cKTOop 3apJiacaH. 3h3 6ofljiorMH xyBb/ixarcaajiraaphsbtpyyjicsh stack* .i.iccbir aurarjiax Hb toxhpomjktoh. Yhhp Hb n toohh yrraac xaMaapi loepTUH toojiojia rapax toohh opoHrata too (ypT) eep eep 6anx Tyji ctckt opnx hhht 3JieMeHTHHH Toor ypbflHJiaH M3fl3X apraryii.

Page 101: Algorithmiin shinjilgee

Cmetc

v o i d m a i n () {

S t a c k < c h a r > s t ; / / S t a c k < c h a r > s t ( 1 0 0 ) ; X3p3B MaoCHBaapc h a r s [ 8 0 ] , c h ;

i n t i ■» 0 ;

g e t s ( s ) ;

w h i l e ( s [ i ] ) {

i f ( s t r c h r ( " { [ ( " , s til-) ) s t .p u s h (s [ i ] ) ;

i f ( s t r c h r ( " } ] ) " , s [ i ] ) ) {

i f ( ( ! s t . p o p (c h ) ) || ( c h t :— m a t c h (s [ i } ) ) ) f

c o u t « " U n b a l a n c e d " « e n d l ;

e x i t ( 1 ) ;

))i + + ;

)i f ( s t . e m p t y ( ) ) c o u t << " P a r e n t h e s i s a r e b a l a n c e d " « . e n d l ;

e l s e c o u t « " U n b a l a n c e d " << e n d l ;

Ic h a r m a t c h (c h a r c p ) {

s w i t c h (c p ) (

c a s e ' ) ' : r e t u r n ' ( ' ;

c a s e ' } ' : r e t u r n ' { ' ?

c a s e ' ! ' : r e t u r n ’ [ ' ;

)

AputpMemuK u/iapxuiuiaA

)io xacsrT apa4)MeTHK HJi3pxHHJT3Ji 6040x0,0, ctck x3px3H amMrjiarflaxbir xnpuraaa. Apnc})MeTHK mispxHHjuiHfflx Sofloxfloo yanjimmu T3Miiryy/ihhh i YHU3Trarfl3XflapaaJUiB.ir 6apHMTJiax ecroW. Qepeep xsjiSsji sxjissa xaanTaH ;iaxb YHOTiHttr, ziapaa hi> 33psr flaBiiiYYJisx, jiapaa hj> ypacnx 6a xyBaax, 3 user in. hsmsx 6a xacax recsH aapaaiuiaap ryHusTi'siimsr. flapaax 6yx3.ii tooh

• l|>H(j)MeTHK HJI3pXMHJIHMHr 3BH y3I>e.

I* ( 2 + 1 ) ' '2 - 8 / ( 9 - 5 ) » 2 * 3 ^ 2 - 8 / 4 = 2 * 9 - 8 / 4 - 18 - 2 6 1 6

A a w B a a a p n (J )M e T H K 8 » 3 p X H t o l H # r 60^ 0x400 e m i e p 3a p 3rji3ji 6y x H H

yliJiwissc 3XJT3H r y i i u a T r a * , Y P flYH r c a iia H fla p a a iiiiiH y h jM 3 .H H a m ir o ia x

i n M a a p r y a n s T r s A s r . ) K H m 3 3 J i 6 3 J t ^ 3 3 p x x h u i s s h h h xyBbfl ( 2 + i ) = 3 6a (9-

)-4 r e c 3 H 3 a B c p u H Y P A Y H r c a H a H f l a p a a ‘f iH H H 3 3 p 3 r ,n ;3 B m Y Y J i3 X 3 ~ 2 6o jio h

y p a u ix 2 * 9 , x y B a a x 8 / 4 r s c s H yHJiflJiyyasfl a m w r j ia H m © h y p a y H r a B li,

i jf lr s s p H H H H JiraBpaap 1 6 t s c s h s u c h h h y p a y n a f le p B e H ajix M biH jiapaa

\YP*i S a t o a . A a x a M 6y p T H Jis p x H H JiJ iH iir f l a x H H u i h h x j i s h y h ji /j j ik h h

.lapaajLntrr T o flo p x o ib io H 3 a B c p u h yrryyflhir c a H a a c s x i c h h h y p a y H r o jd k

105

Page 102: Algorithmiin shinjilgee

Eyjix 7Y ^aax X H in ss rssp xaajiTHH 6ajxaHC m a jirax ajirop iiTM bir asn y3i>e. T3M£3rTYynHH h ^apaanajifl ( ) , ( ) , [ ] recaH xaajiryyfl opcwniox Seree fl hssx xaa/tT ( , { , [ SypT xapraroaH xaax xaajiT ) , } , ] Gaflraa scsxHftr manrax k >m .

)Khui33ji63ji ^apaax xaajnyynun uyBaa h l 6ajiaHc.nar,ncaH 6yioy xaairryyn Hb xapraJi3aH 3aB xaar,n;caH 6aHHa.

0u u< {[ J O H 1 )

TarBSJi .napaax jKHUissrssp xaajiTyyntiH 6anaHCJxaaryH Saftx TOXHO-rmJiyy/ibir Y3YY-Hi>e. >Khlu33Ji63ji,

1. ) - hssx xaam SaftxTYH2 . [ - xaax xaairr 6aHxryft3. { [ } ] 1 6ypyy xaajrraap xaacaH r.M.

XaanmHbi dancmc u iam ax amopumM

Ctck aniHiJiax hb shs acyyipibir omitzpx xaMraftH xsuiSap, yxaanar apra iom. TsMflsnypiHttH nyBaaHH 3xji3j « 3c tsmasit 6ypHHr yHixiHH, H33x xaanr Taaparmax SypT TyyHHiir cTetcr xiiftx 6a xaax xaairr TaapajmBaji CTeKsac Hsr sjieMeHT aBi xapraji3ax hssx xaanr acsxHitr uiamran, 36B toxhojwmih uaaui Ypr3JT»MYYJi3H manraHa. Oepeep xsjiSsjt hssx xaajrryyn, ctckt opcoH flapaamrtiH scpsr flapaamtaap xapraioaH xaax xaamryyn 6afix ecToft. ^[sspx aatmsaraap \3Yyjic3ii xaajiT 6a)iaHCJiaarYft 6aiix TOXHowiyyflHr

1. Xaax xaajrr Taapaiwaxafl e m e u x o o c o h 6 a u x scsx2. B yx TaMjiSiTYYflMHr yH iuaa# flyycaxa# emeu x o o c o h 6 u m 6aux s c s x

3. Tyxato xaax xaairrHH xyBbfl ctckhhh opoftrooc aBcaH hssx xaajiT Hb xapzamcm see 6anaHcnax scsx

r s x nranrax 6o;iho.

XaanxHbi 6anaHc uiaJirax nporpaMMHH flapaax Kop Hb stack KJiaccHT anraraacaH.

# i n c l u d e < i o s t r e a m .h >

# i n c l u d e < s t r i n g .h >

# i n c l u d e <stdlifc> .h>

# i n c l u d e < s t d i o .h >

c h a r m a t c h ( c h a r ) ;

t e m p l a t e < c l a s s T y p e >

c l a s s S t a c k { . . . } ;

104

Page 103: Algorithmiin shinjilgee

Cm$K

T3MA3ra3r39HHH eep Hsr anrarTaft Tan 6oji aJiHBaa hjispxhhjijihhh 3aBcpbin yrryyfltrr ctckt xaflrajiaH, WJi3pXHftjumftr (tsmtoit 6ypniir) 30BX0H Hsr yflaa

I yiiuiMH xaji6apxaH apraap 6040* 6oji.hoit opuiHHo.

W HMJX apH4)MeTHK HJISpXHftjUIHHr 60fl0X aJiropHTM Hb 3XJI33/1 HJISpXHHJUlHHr (Tojibui T3M^3rji3r33H^ xepByy^t>K, 4apaa Hb tyyhmht 6040X recsH xoep a;iXMaac to jtoh o . Ajtb m ajixaMA cTeK Hb yhucsh YYP3r ryfinaTrsHS. Ehh )xji33}j, rToJii.m T3MH3rji3r33Hn xepBeceH w i3pm &jum m 6040X ajiropHTMTait,

;<apaa Hb IloJibm T3M43rJi3r33H4 xepByy-Hsx a^ropHTMratt TaHHJHjax 6ojiho.

HoAbui m jMd3ZA3Z33nd xepeecen wtapxuuA/iuuz 6odox

»’ HJI3pXHH/UIHHr OoJIbUJ T3M 43I7I3r33H4 X0pB0C0H HJI3pXHHJ13^ F 3 * Y^be.

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.

#• (6+2) -12/4

1 1111 ipxHHJiJiHHr^33px ariropjiTMaap 6040X yea 3aBCpWH jrryy/J, xspxaH cTeici' M,n,i;iar4axbir 7.5-p 3ypraac xapta .

//«tutu m3Md3ZJGi33Hd xopeyyjax aAeopunm

) 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

Page 104: Algorithmiin shinjilgee

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

Page 105: Algorithmiin shinjilgee

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

Page 106: Algorithmiin shinjilgee

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 .

2 . Q H/lSpXltHJUTHi-ir 3XJ13JI33C Hb T0XCX0JI XYPT3JI SJTeMeHT 6Yp33p CTeKxoocoh 6ojxtoji yHumx^aa 3-6 ajixMyyaur aBxana.

3. X3p3ByHinHracaH3 feMeHXHbonepaHfl6o^PHJi3pxHiiffliHHH TercreJW H 3 M H 3 -

M Xsp3B y H u n t r a c a H s j i e i n e H X H b h s s x x a a m r 6 o j i c t c k t x h h h 3 .Q ? X s p s B yHUiwracaH sjieweux Hb onepaxop 6 oji

a) Yr VHUiHxacaH onepaTopToft hxhji 6ojioh h x 33p3ni3^X3H 6 y x

onepaxopyyflbix cxeKHHH opoiixooc aBH p HJispxHitojifl hsmhs.b) V'x VH um xflcaH o n ep a x o p b ix CxeKx XHHH3.

[G ) Xsp3B VHijntixrcaH sjieMeixr Hb xaax (6apyyH) xaamr 6 oji

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

Page 107: Algorithmiin shinjilgee

^.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.

BhAHHH © flop AyTM HH aMbApajij* h aapaa jia ji 6aHHra TOXHOJI/Wor 6hji33 . >Khiu33Ji63Ji, 6aHKHbi KaccaH aaxb xym yycm hh Aapaa jia ji, 3aMbiH yyji3Bap

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

YHJilui3XHHH T y jw KaccHM jjapaa ju ib ir aHxaapaH aB4 \ 3 3 x Hb saHJiwrYH iom. TyxaHJi6aJi K accH b ixaa jjap aa ju ib ir (1 ) 3©bx©h H3r Kaccaap (2 )i ypBaH Kacc 33psr aaauuiyyjiaH Kacc 6 y p t Tyca# Hb jiapaajian yycrsH ym jihjisx ,

(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

Page 108: Algorithmiin shinjilgee

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.

110

Page 109: Algorithmiin shinjilgee

Ey/iae 8

3apuyyjiax xyrauaar msrs'm Saftx iuaap/uiaraTaft. XapnH rypaB flaxb coHrojrruH yen 3X3.rac Hpc3H xspanrar? sxsjdk YHJiH/iyyjiax Hb oiijiroMXTofi iom. 0 ep Hsr coFirojiT 60n yflLniHJirssHHii X3Ji63p33C xaMaapaH KaccyynbiH YHJiHHJirasr Tepe/incYYJi* 6ojiho.

flapaanan Hb icoMnbioTepHHH nporpaMMHmrm Maui 'iyxan yypsr rYiiU3Tr3H3. }Khui33Ji63.h, yhjwihhh cHCTeM npoueccyyflHr (caHax oitn anaanar/tcaH nporpaMMyy^bir) xyrauaaHU xyBaapHJiajrraap 30XHuyyjiaH axrajiyyjiax, moh npHHTepr x3BJi3r,n,3x axjiyyflHH uyBaa 33parT .napaajiaji 3yh ecoop aoiHraaraaHa.

3iyi yhjuuihhh CHCTeM npoueccyy/iwr xapxaH xyBaapHJiaxur tobhxoh aB«i Y3be. Ojioh nporpaMMUH axoibiH ropiiMUH toji aopiiJiro Hb npoueccopHH amHraajiTHr caiixcpyyjiax iom. IlpoueccopT npoueccyynbir xyrauaaHH xyBbfl xyBaapmiacHaap xsparJiarnns# aaauiJiaac Baiiraa nporpaMM 6ypt3H xapbuax 6oJioMxniir 0/ir0H0 . Ilpoueccyyfl Hb yh^csh caHax oiifl 6aftpJiax 6a npoueccopbir 333JDK aBaxaap xyjisax dapaanand upcsH iiapaajuiaapaa opuor. Shs .napaafla.ii Hb H3 r xoji6ooct acarcaajrraap ToaopxoHJiorAnor 6a npoueccyyflUH Tyxatt M3fl33JiJiHHr aryyji* 6aH^ar. IlpoueccHH Tyxatt M3,H33JDiHiir npoyecc KOHmpoji 6/iok rex 6ereefl npoueccHH kohtpoji 6;iok Hb aapaajiaji flaxh flapaa^HiiH npoueccur 3aax 3aar>i Taji6apbir aryyjiflar. Xyjissx aapaajuiaac ra/yia CHCTeMU xsa xsasH .Hapaamn Saitaar. Ilpouecc Hb T6B npoueccopbir 33JI3H aBaaa xscsr xyrauaaHfl axjuuiaaa .nyycax, Tacaonax, 3CB3JI opojrr/rapanTHH HMap Hsr yttJWSJi xhhx xyjissx SaftflJiyyaaap tsb npoueccopbir flapaaHHiiH npoueccT lejieeji* erfler. Opojrr/rapajrrHH yiiJWSJi Hb TOAopxoft H3r TexeepsMxatH, Tyxaiuidan npHHTep, jihck 33psrr XHiiriWsr. TyxaftH YeA eep npoueccyy# opojiT/rapajiTUH TexeepeMXHftr 333;ic3H toxhojwojw yr TexeepeMxcniir cyjipaxur xpssx niaapujiaraxaft. TexeepeM* 6yp eepHHH flapaanairrafi 6aflflar. Ilpoueccyyn opojrr/rapaimuH yitnjyiHHr ryHusTra* yycaan #axHH npoueccopbir 33j 3X3ap xyji33x acarcaajrraa opaor. npoueccyyaur npoueccopT xyBaapRriax epeHXHH anarpaMMur 8.1 —p 3ypraap y3YYJIJI33-

Ojioh xapsrJiariHHH KOMntKvrepHftH chctcmhhh scbsji KOMnbioTepHiiH cyjiao3HHH npHHTepHHr xspsrjisnnm xaMTpaH ainnrjiax yea npHHTepT xsbjisxssp aaMxyyjicaH axnui npHHTepHita aapaajiajw opaor. ripHHTepT xsbjisx aaoiyynbir 3oxnuyyjiax nporpaMMUH anropHTMur aapaax ko^hh xacrsap 6y^yYb'IJI3H Y3YYjuk 6ojiho.

fo r ( ; ; ) {while (printerQueue. empty ( ) )

sleep 1 ;

Page 110: Algorithmiin shinjilgee

jjapaa/iaji

p r i n t F i l e = p r i n t e r Q u e u e . re m o v e { ) ;

p r in t (p r i n t F i l e )

I

Xapaii n p o rp a M M H b x s a X 3A 3H npH H repH ttn a *J iH r 30xHnyyjiax m aap/yiara

rapBaji x s b j i s t a s x axoiyyflbiH AapaanajiA Typyy 'iHiiH S a H K H H j k h u i s s h a

raBnracaH acyynaji a p m a a * 6 o j i h o .

3ypar 8.1. flponeccyy^bir xyianaaHM xyBaapwjnanraap aoxnuyynax

UapaaJiajiA opcoH aacnyyjj Hb hwhji 33p3Di3JiT3H mk sxsjisk opcoH axcHJi lYi'yyjDK jiyycHa. 3apnM toxhojiaojia aapaajxajw opcoH axjiyya flJiraaTaii i >P3rJi3Jrr3tt 6aftx 6a ©Hflep 3sp3rJT3Ji 6yxHft a*JiyyA AaByy spxreii 6afiflar )m toxhojiaojia Aapaajiaji Hfc apatt eep 3gxhoh Saijryyjiajrraap axHJUiax

Tm ij ih o .

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

Page 111: Algorithmiin shinjilgee

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.

3ypar 8.3. flapaannbiH awminax 3apnnM

flapaajuibir MaccHB aixiHTJiaH H3BTpyyji3X ye#; iiapaanaji flyyp3H 3CB3JI xoocoh 3C3XHHF uiajiraxnaa front 6a back xyBbcanyyabir auinrjiaHa. 8.3 -p 3yparr Y3YYJicH33p ziapaairaTO 3JieMeHT xhhx 6ypT b a c k 3aarn Har 6aiipJiaJiaap (uarHHH 3yyhhh naryy ^nn is jizO iimjuKC33p f r o n t saar^HHH omhox 3JieMeHT3u: ohkx ye# napaajiaji nyypHS. Here© TaJiaac, #apaajuiaac 3JieMeHT raprax 6ypT front 3aarn Hsr Saiipjiajiaap m©h uarHHH 3yyHHH aaryy uihjdkhh, back 3aarMtaf idkhjt i le M e H f 3aax yea flapaajiajm ram i sjieMCHT 6anx 6ojiho. CyyjiMHHH 3JieMeHTHiir flapaajuiaac rapracHaap front 3aarii Hsr uihjdkhh aapaanaji xoocoh 6ojiho. flapaajuibiH 3&T33p ayypsH 6a xoocoh TeJTByyaHHr <S.4 —p 3vpraap y3yyji3 B.

114

Page 112: Algorithmiin shinjilgee

JJopaajiaA

front

\ / back

front

back

3ypar 8.4. flapaarmbm AYYP3H 6a xoocoh 6onox tojibyya

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.

ilapaax Queue KJiaccbiH 3apJiajiTaap MaccHB auiHrJiaH Aapaajuibir xspxsH VYcraxHHr xapuraan,

i «:iuplate <class Type>

lass Queue {

Type * queue;

int front, back, MaxSize;

public:Queue(int MSize) : MaxSize(MSize) {

queue = ne w T y p e [ M a x S i z e ] ;

front = back = 0 ;

}~ Q u e u e () {

delete [] queue;

}bool insert(Type item);

bool remove(Type& item);

bool e m p t y ();

bool full ();

gueue Saftryyjianr ct>yHKH33p Maxsize X3M)K33 6yxMii MaccHB YYCI3>K 6ataa. Jlapaajiaji AYYP3X Ye# Hexuan ecoop MaccHB Hsr xoocoh sJreMeiiT aryyjiax 6a napaajiaji Hb xaMrafei HXA33 Maxsize-i 3JieMeHT aryyjDK qaAHa.

115

Page 113: Algorithmiin shinjilgee

By/isa 8

flsspx Queue KJiaccbir nporpaMMa aapaax Saniyiaap auiHrjia* 6ojiho.

vo id main() {Queue<char> q (6) ;char s [ ] = "Queues;", ch;in t i= 0 ;

w h ile (* (s + i) && q . in s e r t ( * ( s + i ) ) )cout << "queue <— " « * (s+i++) << endl;

/*w h ile (* (s + i) && I q . fu l l t ) ) {

q . in s e r t ( * ( s + i ) ) ;cout << "queue <— J << * (s+i++) << endl;

}*/

while (q. remove (ch ))cout << ■ queue —> " « ch << endl;

}

flsapx nporpaMMMH Koaoa 6 TSMflarr aryyjiax aapaaiuitir yycrscsH Sataa. T3B>i aapaaJUiHr MaccHBaap HJispxniiJisx yea ayypsH aapaanan hb Hsr xoocoh 3JieMeHT aryyjiax y rap 3H3 npopaMMHH aapaajian xaMrHHH Hxass 5 sjicmcht aryyjiax 6ojiho. flsspxnporpaMMtir axHiuiyyjiaxaa ‘Q’ ,’u’ ,’ eVu ’.’e ’/s’ rec3H TSMasrryyaHiiH sxhhh 5 T3Ma3rr opyyjicitbi aapaa aapaajian ayypsH rscsH M3a33JiJiMHr aBax 6ojiho. flapaajiajia sJieMeiiT opyyjiax xscrHHH uoatir nporpaMM aaxB /* */ xaajrraa Gaflraa xscresp cojihchoop aapaanan ayypsH T3C3H MsaasJisJi rapaxaac 3aftJicxHHJK 6ojiho. Gepeep X3JI63JI aapaajian ayypsH yea in s e r t ( ) 4>yHKii33p 3JieMeHT opyyjiaxtir opojiaoxtiH eMHe fu l l () (J)yHKH33p aapaamiUH TeJiBHHr ypba'uian majirax iom.

flapaanana xnftrasx yfijianyya 6ojiox Queue KjiaccHH rHinyyH $yHKnyyaHHH Koaur aoop Y3yyjui33.

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

Page 114: Algorithmiin shinjilgee

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

Page 115: Algorithmiin shinjilgee

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

Y3YY^JT33-

back f r o n t

3eexeH dapaannbiH axnanaac

4 u 1 3 — ( !o p y y n a x

>

------ p U U

a a p a a x

3ypar 8.6. Har xon6oocT warcaa/rrbiH TyxaMH 3aHmnaaHaac omhqx 3aHrMnaaHfl ujyyA ommx 6onoM>KrYW.

8.6 — p 3yparT y3YYJICH33p Aapaanjraac {e ’ 3aHnuiaar rapraxbiH Tyjw fro n t

3aam Hb tyyhhh omhox V 3aHrHJiaaH£ ohhx ecTOH. F3bti hst xoji6ooct xarcaaJiTHH TvxawH 3aHrnjiaaHaac omhox saHrmiaaH# iu y y d ohhx 6o/iomxtyh 6anziar.

, 'lap aax Queue KJiaccbiH 3ap jia jrraap flapaaru ib ir TOAopxoHJn>e.

118

Page 116: Algorithmiin shinjilgee

JJapaa/ia/i

rm plate < c la s s Type> la ss Queue {

s t ru c t Node {Type d a ta ; Node * l in k ;Node(Type d) : d a t a (d ) , lin k (N U L L ) { }

} ;Node * fr o n t , *back ;

u b lic :Queue() {

f ro n t = back = NULL;}-Q ueue ( ) |boo l in s e r t (T y p e it e m ); boo l remove(Type& ite m ); boo l em pty( ) ;

i ont 6ojioh back 3aarHyyn, n u l l yrraxaH 6aHxa,n jtapaajiaji xoocoh 6aiiHa.

•inplate < c la s s Type> Queue<Type>i : ^Queue () { w h i le ( f r o n t ) {

back — f r o n t ; f ro n t - f r o n t - > l in k ; d e le te back ;

mplate < c la s s Type> b o o l Q ueue<Type>:: in s e r t (T y p e item ) { Node *new__node; new_node = new N o d e (ite m ); i f (new_node) {

i f (e m p t y ( ) ) f r o n t = back * new_node; e ls e {

b a c k -> lin k = new_node; back ft b a c k -> lin k ;

}re tu rn t ru e ;

I• •Lse re tu rn f a l s e ;

uplate < c la s s Type> b o o l Q ueue<Type>:: rem ove(Types item ) { i f (e m p ty ( ) ) {

cout << "Queue i s em pty\n"; re tu rn f a l s e ;

Ie ls e {

119

Page 117: Algorithmiin shinjilgee

Rapaamnn • )iu33, aoou ioo cyMHH TycjiaMaeraftraap <|)ailJiHH AanrsuaHA xaparAaxryft ftnttcan X3cryyanHr ASJirsusHA opyyjrac HpAsr. 3 h 3 yh jw th h f ryiiusTrsx H3 r upia 6o.rc 43 jir3 i i3 H4 y3YYJI3X MepHHK to ° 6yxhh 3JieMemT3H aBxap Tercre^x rtapaajinaap xo/jopxoifJDK 6ojiho. O epeep xsjiGsji aoo iiioo cyM ziapax 6ypr (litpaajiajifl H sr M ep opac H e re e x© rcre ;iee c H3r Mep xacar/ ia* 6aflx* IIIII33T3H. XapHH 4330133 CyM Hb YYHHH 3Cp3r HHrJI345 YHAflAHftr rySlUSXISX

Xnvirflsx yftJiAJiHKHxas xyBbfl epAHftH Aapaajiaji 6 a flaBxap xercre;ix AnpaanjMH xoopoHA aparAax xoep xepjiHHH aapaajuibir sha toaopxohjdk

SArsspHftr oponm Hb xH3zaapjiaedMaA 6a zapcuim «& xn3eaap/iaedMcui •i.mxap xercreJii Aapaamn: rex Hspjis^sr. Opojrr Hb xaaraapjiar/iMaji flaBxap11 > 1 c rairr aapaanaji Hb opoan.ir 3eBxen Hsr TercrenA, rapajrrar xoep xerc re/14 loiuueepfler 6oji rapaJiT Hb xji3raapjiar4Majr 4 aBxap xercre;ix Aapaanan Hb opojixbir xoep TercreJia, rapajrrbir 30BX6H hst xercrejra 3eBHieep4er. -+>iiui33 ji63ji KOMnbK)TepHH rapaac ereraeji opyyjiax <£yHKHHftH erer/uiHHr wuiranax 6y<J)ep Hb opojiT Hb XH3raap;iar4Maji jaBxap xercrejiT flapaauaji « >;i63p3 3p TOflopxoHJiorflnor. n xyBbcarHH^ yrra ojirox c in »n ; yftJUWHHr* 7 -p 3ypxaap Y3YY-®133-

Bycfrep - daexap meacaenm dapaanan

n | 1234 |

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.

’•Mia 6ha rapaJiT Hb XH3raapjiar4Maji AaBxap xercrejrr flapaajuibiH KJiaccbir 111 in yyh (J)yHKHYYAHttH koah h xaMT Y3YY®e - flapaax Deque 3araap jcnaccbiH mpjiajrraap rapaJiT Hb XH3raapjiarAMa;i AaBxap TercreJiT .napaajuibir u)«opxoitnHO.

•■mplate <class Type>1 .1.1 s Deque (

121

Page 118: Algorithmiin shinjilgee

Eyjiaa 8Node *temp = front; item = front->data;if (fro n t == back) front = back = NOLL; else front w front->link; delete temp; return true;

i)template <class Type> bool Queue<Type>: : empty() {

i f ( ! front) return true; ej.se return false ;

)

void main f J {Queue<char> q;char s [ ] jm "Queues", ch.;i nt 1 =0;,

while( * (s+i) && q .in se rt (* ( s + i ) ))cout « "queue " « * (s+ i++ ) « endl;

while(q.remove(ch)). cout « " queue —> " « ch « endl;

^apaajuibiH omiroH TOXHOJWJiyya

flapaauana xhhx yfowiYYXl Bojioh 3oxhoh Ganryy^ajiTbiH xsjrffepssc xaMaapaH flapaajuiHH yimcsH iiihh* 'laHapaac raxoix Toxnoji,o;jjyy,n, 6aifcnar. 3hh 6*w flapaanwuH OKiiroii xsjifopyYfl Sojioh aaBxap Tercre/iT /lapaajiad 6a spsmSot (33p3M3JiT) flapaaiuiHr aBH y33X 6ojiho.

JJaexap mezcze/im dapacuian

3aeMeHTMHr opyyjiax 6a raprax YfiJWiniir a;ib h xercrejw hb ryinreTrax: 6ojiox flapaaiiJibir daexap moecze/im dapacuian (deque — double ended queue) T3H3.

flaBxap xercrejiT aapaajian hb scpsr iHrjrejrrsfi: xoep aapaaJiJiMH, Heree Tajiaac xoep cTeKHte Hsrasji mst iom. Gepeep X3ji63ji aaBxap TercreJiT flapaajuiBiH Tyxaim irer Tercreim opcoH sjieMeHT T3p xercrejjeep rapBaji sire hb cTeKHHH 3apHMaap, x3p3B Heree Tercrejieep rapBaji flapaaranuH 3apwaap ajKHJuiax 6qjiho. >Khui33Ji63ji TeKCT GojioBcpyyjiari nporpaMMU 3acBapjiaxaap a'laarrcan 4>aHJiHH 3eBxeH Hsr xacsr hb flsjfrsBtsHfl xapar/war. Xspanrar1!

Page 119: Algorithmiin shinjilgee

Byjiae 8

s t r u c t N o d e {

T y p e data; N o d e "*link;

N o d e ( T y p e d. No d e *pt=NULL) : data(d), link(pt)

} ;N o d e *top, *t>ack;

public:

De q u e () 1

t o p — b a c k 2=5 NULL;I-"Deque (Jbo o l i n s e r t ( T y p e item);

bo o l p u s h ( T y p e item);

bo o l p o p ( T y p e s item);

bo o l e m p t y ();

} ;

t emp 1 a t e <cl a s s Ty p e >

D e q u e < T y p e > ; D e q u e () {

No d e *temp;

w h i l e (top) {

t e m p = top; top = top->link;

d e l e t e temp;

TapajiT hb XH3raapjiarnMaji #aBxap T ercro jiT aapaajiaji hb H3r T e rc r e jw e e 3 © b x © h opyy jiax YWJWnmr, H0r00 T e rc re jin ee opyyjiax 6a raprax yhjiajihht xoey jraH r Hb 30BH i00p£0r. H h m 3 3 C A 33px KJiacc Hb ijapaaju ib iH x o e p Torcro jiH H r 3aax to p 6a b a c k 3aan iyyiib ir aryyjiHa. top 3aarqaap 3aar,aax TorcroJiA op yy jia x 6a raprax Y& W iYYO T& r ryH ixsTrsx 6a 3H3 Hb c t c k h h h 3ap^Maap axHJuiax 6ojih o . H h m s s c 3H3 o p o H A x h h t c p x opyyjiax 6a raprax

YHJiAJiYYAHfrr p o p () 6a push () 4)yHKUYY#33P toaopxohjijioo. po p () 6a p u s h ()

THUIYYH 4>yHKlIYYJIHHH KOJIbir Jioop Y3YYJIJI33.

t e m p i a t e < class Ty p e >

bool D e q u e < T y p e > : :p o p(Types item) {

i f ( e m p t y ()) {

cout << " S t a c k is empty" << e n d l ;

r et u r n false;

1 'else {

N ode *temp — top;

i t e m - top*->data;

i f( b a c k '== top) back = NULL;

top = top->li.nk;

del e t e temp;

return true;

Page 120: Algorithmiin shinjilgee

JJapaa/iaA

})

templatecclass T y p e >

l>ool Deque<Type>: : p u s h (Type item) {

Node * n e w _ n o d e — n e w N o de(item, top);

if(new_node) {

top = new_node;

if(!back) b a c k = top;

ret u r n true;

)else ret u r n false;

XapHH b a c k 3aaniaap 3aar#ax Heree Tercreji Hb 3©bx0h opyyjiax yhjiajihhf lOBineepzjer 6a 3H3 Tercrejrm opcoH 3JieMeHT Horee TajitiH to p 3aaniaap laarnax Tercr&rceop rapHa. 3 h s yHJT^3Ji hb epflHHH ziapaajiajiTaM a^HJixaH .lacmuiaHa. H h m s s c b a c k TercrejiA 3JieMeHT opyyjiax yHJiAJiHHr i ns e r t ()I MIUYYH 4>yHKH,33p TOflOpXOHJICOH 6a KO^blF tfOOp

iemplate <c l a s s T y p e >

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.

Page 121: Algorithmiin shinjilgee

Eyjue 8

9 p 3 M 0 3 m dapacu icui

flapaaaaur 3X3/1* opcoH Hb sxsjdk rapax 3apwaap axn/iJiaAar 6ojioxbir 6h a eM Hex xa crssc Massac aBcaH 6 hji33. T stbsji 3Hfl xaMTHiiH ©Hflep 3p3M6sT3ftr33p opcoH Hb 3X3/1* rapax eep H3r topjihhh Aapaa/ra/rraii TaHH/njax Sojiho. M km Aapaajui u r apsMSax j/apaa/ia/i r a x H3pji3A3f. YyiiHMr M0H eepeep 33p3ni3/iT Aapaa/ia/i q r a x xsjdk 6o/iho . 3 psm 6st flapaa/i/iur Aapaax xoep yHJOTissp TOAopxofuiAor.

(1) 3/ieMeHT opyyyjiax

(2) XaMrHHH eH/(ep spsMfiaxsH 3/ieMeinniir raprax

XspsB flapaajra/m iixh ji 3p3M63T3H 3/ieMeHTYYA 6aiiBaji tsatssphhh sxsjdk opcoH Hb 3X3/1* rapax 3apliMaap axH/uiaAar.

SpsM SsT AapaajuiHH 3apiiwaap snsai'AAar ojioh *H iii3 3 r 6h a 6o ah t aMBApanaac oji* xa p * 6ojhio. )K hiu33ji63Ji , tsmtjihhh sMHSJiraiiH xyJissH aBax epeoHA HpcsH 0bhthyyamhh xaMrHHH xyiiA rsMTSjrreilresc hb sxsjix anxHH ryc/raw* Y3yY/iA3r.

KoMiHObxepHiiH chctcma spsmSst Aapaa/uiMr amnraacaH ojioh xspsrassr AypBAax 6ohho. Tyxaii/i6aji shs 6yjhhhh sxsha aBH yscsh npoueccyyubir xyrauaaHLi xyBaapHirajrraap 3oxHityy/iax *h iu 33 iom. T ob npotieccopT 6ojioBcpyy/iarAaxaap xyjisscsh ojioh nponeccyyA AapaanajiA opcoH 6aftAar. SArssp npoueccyyA hb Sms 6yptiHH aspsrjisjiTsftrssp TOAopxoftjiorAOX SereeA enAep 33p3r/i3iiT3H npouecc sxs jix npoueccopbir 33JI3H aBAar.

3p3M63T AapaajuiBir xsa xsash apraap 3oxhoh Gaiiryyjian HSBTpyy/i* Sojiho. YyHA spsm Sst Aapaa/uiHH 3/ieMeHTyYAniir opcoH Aapaajuiaap hb xa/ira/ix, xapHH AapaaiuiHH xaMraiiH hx 3P3m63T3.h 3/ieMemnHr xaftH ojdk Aapaa/iJiaac raprax So/mo. 3 h3 toxhojiaojia opyyjiax yii/iAsa Hb AapaaiuiHH TercrejiA H3r 3JieMeHT h sm sx raHH \'fi/iA/f33p xhh tasx 6a 0 ( 1 ) tscsh xyrauaa 3apnyyjiAar 6oji raprax yhjias/ia o <n ) xyrauaa 3apuyyjiHa. Y hhp Hb 3JieMeHT Taprax y ftw resp AapaajuiHH 6yx sjreMemresc xaMrHHH eiiAop s ps m Sstsh 3JieMeiiTHHr xa ftx ojiaot.

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

Page 122: Algorithmiin shinjilgee

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

Page 123: Algorithmiin shinjilgee

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(})

fjojiHo. MoAbir rpa(J>MH oHuroa Hsr toxmojiao/i xsjdk 6ojiho. Fpa<J>biH

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

Page 124: Algorithmiin shinjilgee

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

ye/133 0BJT0H yjl/i:33^3r. YH 3H X3p3rT33 MO/JHbl H 3p TOMT>eOJIOJI Hb ?H 3

X3p3TJi33H33c YYCC3H Go/ioxbir 6 m r xapax 6 o jih o .

X ap H H KOMnbK)TepHHH nporpaM M H Jia jif l m o # Hb M au i n yxa ji yyp3rT3H orerzu iHHH 6yT3U 6er©ea t y y h h h 3apHM X3p3r;i33r 3H3 h o m o o p cyaajm a.

ToAOpxoHJioJiT 6a Hap TOM'beojioji

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

Page 125: Algorithmiin shinjilgee

By/i32 9M oah li 3aHrHJiaanyyA m y e iu u m y y d a d xyBaar^aH 6aHpJia#ar 6a 3aHrHJiaa 6yp TOAopxoH war TYBiiiHHA xapi>jiajiarAaHa. 3xhhh tybuihh 6yioy 0 tybuihha 36BX0H YHAC3H 3aHrMJiaa 6aiix 6ere©A moahli 6ycaA 3aHnuiaaHyyA ©©phhh 3X 3aHrHJiaaiiH TYBiiiHHrssc H3r33p hx tybuihha xaMaapHa. )Khiii33Ji63JI 9.1 3yprHHH moahh r 3aHrHJiaa hb 1-p tybuihha, s 3aHniJiaa Hb 2-p tybuihha 6aHpjia5K 6aHHa. M oah li eyn 6yioy e n d e p h l m o w TYBWHHrHHH Tooroop TO^OpXOHJlOrAHOr. HHM33C MOAHhl QH^ep HL xaMrHHH HX TYBHIHHrHHH yrraac H3r33p hx Samia. M oah li 3 0 M U H y p m h l moaoh Aaxb 6yx 3aHTHJiaaHbi TYBmHHrYYAHHH HHHJi63p33p TOAopxonjiorAAor. 9.1 —p 3yparr y s fp s c & R

moahm ©ha©P Hb 3 ,3aMHH ypT h l 21 6aHHa.

M oah li H3r 3aHrHJiaaHaac cajiaajiac 6ojiox xyyx3A 3aHrHJiaaHbi Toor ohujioh TorroocHoop Tyxata moahli 3yn rprrJiHT auiHTJiaH ajiropHTMA xspsnrsAsr.

XoepTWH MO#

XoepTLiH moa Hb m oahh oHuroH H3r toxh o jiao ji 6©r©©A 3aHrHJiaa 6yp Hb xo epo oc HJiYYrY^ 3aHrHJiaaTaH 6aHflar. X s p 3B m oa H3r h 3aHrHJiaa aryy jiaary i* 6o ji x o o co h m oa 6y ioy n u l l MOA/3aHrHJiaa rs>K H3pJi3H3. 3aHrHJiaaiibi xoep R3ji 3aHrHJiaar 3yyn a sa 3aHmjiaa 6a dapyyn asp, 3aHrHJiaa T33K juira^ar. 3yyh A3A 3aHrHJiaaHaac cajiaajiax MOALir 3yyh jusr moa, 6apyyH A3A 3aHrHJiaaHaac cajiaajiax MOAbir 6apyyn A3A moa tsh s . XoepTbiH m oahh 3aHrHJiaa Hb H3r scbs ji xoep xyyx3A 3aHrHJiaa aryyjiac 6o jih o . XapHH TercrejiHHH 3aHrHJiaaHyyA Hb a 3# 3aHrHJiaaryH 6er©©A xoep xoocoh A3A m oatoh 6aHHa. 9.2(a) —p 3yparr xoepraH MOAbir Y3YYJiJi33.

(a) XoepmbiH Mod (b ) QpaermeceH Mod

3ypar 9.2. XoepTbiH MOflbir epreTreceH m oaoha xepByynax

3apHM toxh o jiao jia epeormocoH xoepmun Modue aBH y33x maapAJiara rapAar 6a 9.2(b) 3ypraap Y3yyjiji33. 0pr©Trec©H xoep raH m oa Hb (x o o c o h MOAHyyAHH) n u l l 3aHrHJiaaHyyAbiH xaMtaap A YPCJI3r JW3r 6ore© A

Page 126: Algorithmiin shinjilgee

Mod

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

jannfJiaar aryyjraa. XapHH aotooa saHrHJiaar aryyjiax xaMrHHH cyyji^mhh I'YBUiHHrHHH 36BX6H 6apyyH TanA 3apHM i| j| M aaHrHJiaa 6aiiBaji TyyHHHr

eyuupd moa rsH 3 .9.3 —p 3ypraap AYYP3H 6a rym p A moahbi XH uisar y3YYJI-fI33-

3ypar 9.3. XoepTbiH MOflHbi ,qYYP3H 6a JY&U3T 6aPix lumh>k

XoepTbiH MOAHH eep H3r oHii;roH X3Ji6sp 5oji Tarnyy XoepTHH moa iom. Tarnyy v <xiprbiH moabit syyh 6a 6apyyH Taniyy rs^K Y33>k 6oaho. XspsB 6yx 3aHrHJiaa »YYH A34 MOAryH 6oji 6apyyH Taniyy, xspsB 6yx saHrajiaa 6apyyH a3A moatyh fioji 3YYH Tarnyy T3H3 . M oh xepeeHHH my# X3Ji63pT3H 6aioc 6ojiho. 0 epeep \ j;i63ji 3aHrHJiaa 6yp 30bxoh 3yyH 3cb3JI 6apyyH A3A moatoh 6a taa tscsh yr. 3H3 M3T4HJI3H XoepTbiH MOA HB HMap lI X3JI63PT3H 6aHiK 60JIH0 .

XoepTHH moa hb KOMnBioTepBiH x3p3rji33HA Mam epreH amnrjiarAax 6a i >p33p AYYP3H scbsji rYHH,3A xoepTBiH moa 6anx yeA xaMrHHH YP auiHiraH OojioxHr 6ha xapax 6ojiho.

M o^ h m ihhh ;*; qaHapyyA

MoABir hsbtpyyjish auinrjiaxBiH eMHe, 6ha moahbi 3apHM qyxaji uihh^c M.mapyyAbir aB*i X3Ji3Jiu,Be.

(a ) f l y y p s H M o d (6 ) r y u u p d Mod (e) Fyuu,3d 6yc Mod

129

Page 127: Algorithmiin shinjilgee

ModMaKCHMyM 3aHrroiaaHbi to o 2i_1 6aftx ecToft. 3aHrHJiaa 6yp xaMraim hxzjss xoep 434 3aHraflaaTaft 6aftx y^np i XYBiUHHrnHH MaKCHMyM 3aHi'HJiaaHH TOO HB i - l TYBUIHHTHHH MaKCHMyM 3aHrH/iaaHhI TOOHOOC 2 flaXHH hx 6yioy 21 3aHniJiaaTaft 6aftHa.

Maiiap 6: n endepmsu xoepmuH Modim MOKCtmyM 3amwiaaHu moo (dyypan Modnbi 3ciHzujiaanbi moo) Hb 2 "-1 6au.ua.

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.

XoepTbiH MOfl Saaryyjiax

XoepTHH MOflBH hsbtpyyasx H3T apra 6oji tyyhhh 3aHTMaar ererfleJi 6ojioh xoep (3YYH/6apyyH) xo ji6ooc aryyjiax ererflJiHHH xhhcbsp Topjieep TOAopxoHJmor.

XoepTHH Mojatbir Saftryyjiax acmiissresp 7 —p 6yji3iT slbh y3C3H apH(|)MeTHK HJispxaftjuiHftr aaxHH aB'i y3be. AphcJjmcthk nnspxHMOTHrMoaoopAYpcasx QoJioMXToft 6ereea yyhhht 9.4 —p 3ypraap y3YYjiji93- Apn<jmeTHK mispxHiuuiHiir Ilojibm TSMasrJisrssrssp (y h w ih h h tsm ^st Hb apaaa 6a ypnaa) HJispxHitac 6o;mor 6oji moa Hb msh tyyhmht HJispxHitox eep Hsr x3Ji63p 6ojiho. 9.4 —p 3yparr ysyy^csh Hb a* ( ( (b + o * (d *e j ) +F) apH(J)MeTHK HJI3pXHftjI3JIT3H flyHHHS. 0H 3 HJISpXHllJMHHr IIO.IIbIII T3Mfl3rJ13r33r33p (YHJIflJIHHH T3MA3T Hb apflaa) M0 H flBC+DE* * F+ * T3JK HJISpXHHJIflSr 6mJI33. YftJIAJIHHH T3Mfl3T Hb 0MH60 6aiipJiaX X3Jl63p Hb *A+*+BC*DEF 6aHHa.

H/rapxuHJisJW opo jiu o* 6yft yh jw m hh TSMJpryvn Hb xoep apryMeHT aBflar 60JI YYHHftr XoepTHH MOAOOp HJISpXHftjEK 60JIH0. Xsp3B OJIOH HH3HH Y#JIfl3JI OPOJIHCOH XYHH3BT3P HJI3pXHHJI3JI 6aHBaU MOAbir apafl 0ep X3Jl6sp33p 30XH0H 6aftryyjiax maapflJiaraTaft. Tsb 'i 6hahhh 3opHJiro shfhMh apmfjMeTMK HJispxHHJWHiir amiffJian xoepTBiH MOflBir 6attryyjiax aBflaji iom.

131

Page 128: Algorithmiin shinjilgee

Ey/iaz 9Manap 1: Modmi juuap m e xoep 3amunaae xoa6ox zanu, 3cim 6aum.

Arch h xoep saHrauiaar aBH y33X3A swax H3r epeHXHH eser (ax) aaHi’HJiaa 0Jifl0H0. Gepeap xsjiSsji HMap H3r sx 3aHrHJiaaHaac caJiaaJicaH A3A moaoha opuiHHo F3C3H yr. #&ax: si yr moahh yHflcsH 3aHnuraa Hb HMap h xoep 3aHrHJiaaHH xyBbA epenxnii sx aaimuiaa 6ojijk naAHa. Hhm epeHxaft 3X 3aHrHJiaaHaac yr xoep 3aHnuiaaHA xyp3x 3aM Hb AaBTarAamryfi 6ereeA 3Ar33pHiir HMHJiyyjicHSsp 36Bxoh raim 3aM ojiaoho.

Maiiap 2: n 3amwiaa 6yxuu Mod n - i xoji6oocmou 6ama.

3 h s iaH ap h b YH5C3H 3aHnmaaHaac 6ycaA 6yx 3aHrajiaa m . seBxeH raHU, ax 3aHiwiaaHA m yyn xojiSorAOHo raAresc m s p a o h rapHa.

j]|,oop X3JI3JIH3X xoep 'iaHap Hb 38BxeH xoepTHH moaoha xaMaapax iom .

lIanap 3: n domood 3amwiaa 6yxuuxoipmbm Mod Hb m i eadaad3amwictamau 6auua.

3h3 'iaHapur hhaykh auiHiJiaH 6aTajrba. ^ o to o a 3aHrHJiaaryft 6yioy xoocoh moa Hb H3r raAaaA 3aHraJiaaTaft SaftHa. 3h3 toxhoaaojia n=o SaftHa. n>0 yeA, n aotooa 3aHrraaaraft xoepraH moahh k ao tooa 3aHrjuiaa hb 3yyH A3A moaoha, N - l-k aotooa 3aHrHJiaaHb6apyyHA3AMOAOHA Safina. HHAyKiuifiH 3apiMaap 3yyH A3A moaoha k+i raAaaA 3aHrHJiaa, SapyyH asa moaoha N-k raAaaA 3aHrmiaa fiaitAar tsbsji hhht (k + i) + (N-k) = n+i raAaaA 3aHnuiaaTaft Safina.

lIaHap 4: n domood 3aneiuiaa Gyxuu xoepmun Moduu eadaad somhh ypm Hb domood scimuh ypmaac 2n —33p unyy 6audae.

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.

Hanap 5: Xoepmbiu Modtiu i dyeaap myewmd xomzuuh uxdas 21 3amwiaa 6ama.MHAyKH33p SaTaJiraar XHfte. XaMraftH sxhhh tybhihha yhacsh 3aHrHJiaa

6aftx 6a i=o yeA 2°=1 yhsh 6afiHa. TsraaJi o < j< i 6attx AypHH j tybuihha 21 3aHrHiiaa 6afiHa ra x y3B3.ii i - l TyBUiHHTHfiH

130

Page 129: Algorithmiin shinjilgee

EyASi 9

3ypar 9.4. A*(((B+C)*(D*E))+F) mispxMMjre/iA xapramax xoepraH moa

JXapaax nporpaMMbiH koh Hb riojibui T3M#3rJi3r33H33c xoepTbiH MO# YYcr3X 6ojih o. 9xji33,5 3H3 6onJioroj[ aumniarflax xoepTbiH MOflbir ererAnHHH XHHCB3P TepJT00p To^opxowjlbe.

t e m p l a t e c c l a s s T y p e >

c l a s s B i n T r e e {

Type data;B i n T r e e < T y p e > * r , (*1;

public:

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; '•

Page 130: Algorithmiin shinjilgee

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 ) ;

t js ta ck .p u sh (p tre e )/

}

/J33px nporpaMMA aumrjiarAax 6aiiraa stack KJiacc h l 7-p 6yji3rT 3arBap 4>yHKi^3p toaopxoh jio tacoh yqpaac t y y hhh koaoa HMap 4 eepqjie/iT XHHJirYHrssp myy# aurarjiax 6ojiho. 3 h s nporpaMMA stack KJiaccbiH stack o6beKT Hb BinTree xoepTWH MOAbir 3aax 3aarqyyAbir aryyjma. flsspx koa Hb riojibm T3MA3rJi3r33r33p ererflceH hjispxhhjijihhx TSMAsrr Tyc 6yp33p caJiraH aB4 moahh 3aHTHJiaaHA xhhhs. M o w 3aHTHJiaa Hb new onepaTopbiH rycjiaMaeraHraap BinTree KJiaccbiH o6beKTbir YYcr3X3A 6hh 6ojiox 6ereeA BinTree KJiaccbiH 6aftryyjiaf4 4>yHKH yHumrAcaH T3MA3rTHHr data thuiyyha ojhoh, 6apyyH 6a 3yyh 3aar4yyAaA n u ll yrra o;iro)K 6aHHa. Xsp3B ymiiHrAcaH T3MA3IT onepaHA 6oji tyyhhh t moahm 3aHTHJiaa 6ojiroH myy# ctck t xhhhs. Ctckhhh sjieMeHT 6yp xoeprbiH moa 6aHHa. O epeep x3Ji63Ji cTeiamr 6yxsjiAHb OH T35K X3JDK 60J1H0 . X3p3B yHUIHTACaH T3Mfl3ITHb OnepaTOp 60JI MOAHblmHTHJiaaHfl xhhxssa, 6apyyH 6a 3yyH 3aaniyyAaA c tck h h h op o iiro oc xoep 3/ieMeHTHHr (xoepTbiH xoep MOAbir) aB4 o jitooa , YYCC3H xoepTbiH MOAbir CTeKT XHiiH3. 3H3 YHJWIHHT HJI3PXHHJIJ1MHH 6yX T3Mfl3rTHHH XyBbA XHHJK AyycaxaA CTeKT H 3r 3JieMeHT yJiA3X 6o r 0©A 3H3 3JieMeHT Hb 6h a h h h 6aHryyjiaxHr 30pbC0H xoepTbiH moa iom. ,ZI,33px ajiropHTMbiH Aaryy xoepTbiH moa YYcr3X npoiteccbir 9.5 —p 3ypraap (m oaoha onepaTop opyyjiaxbiH omhox 6a opyyjiCHH Aapaax 6aiiAAaap) AYPCJI3H Y3YY-JIJ133-

/I,33pX 3HTHHH nporpaMMaaC YHA 3CJI3H TYYHHHT HJIYY T0B0rT3H HJT3pXHHJTJIHHr 3a£JiaH HIHH3KHJDK, MOA YYcr3X nporpaMM 60Jir0H 00PHHJDK 60JIH0. 5Kh III33JI63JI HHM IHHH3KHJir33r KOMnHJIflTOpyyA X3p3rA3rHHHH Ghhcsh nporpaMM A33P xhhast. H stsht moa YYcr3G3H 6oji yr HJispxHHJUiHHr 6oaox 6ojiomjktoh 6ojiho.

XoepraH m o ah t HHT33C 3aare aumniaH hsbtpyyasxssc raAHa uiyraMaH MaCCHBaap HJI3pXHHJIA3r. 3jieMeHTHHH TOO Hb TOAOpXOH, ryHU3A xoepTbiH MOAbir MaccHBaap HJispxHHJisx Hb hjiyy YP aumrraH 6a#Aar.

uinTree KJiaccHH aAHJiaap xoepTUH MOAbir 3aar4 awnrjiaH H3BTpYY;i3X YeA MOAHbl 30BX0H A33P33C AOOIHOO HHrJISJIA ABaX 60JI0M)KT0M 6©r0©A 3Cp3r•inrJi3JiA 60Ji0M)KrYft iom . 3 h s acyyAaJi H3r xoji6ooct acarcaajnraii aAHJi

133

Page 131: Algorithmiin shinjilgee

Byj&e 9

top CTeK I

i )

3ypar 9.5. ABC+DE**F+* MJiapxMMJinaac yycsx moa

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 .

3h a 6ha XoepTbiH moaoop ryiix 6yioy moahh 6yx 3aHnuiaaHyyAaA xspxsH oHHXur aB4 y3be. M oahh 3aHrmiaaHA ohhx rsAsr oibirojiTHH Aop yr omcoh 3aHrHJiaaHA 6o;ioBcpyyjiajiT xhhx, TyxaHJi6aji xsbjisx YMJIA3JI xaMaapna. XoepTHH moahh xyxaiiH 3aHrHJiaar tyyhhh iyyH 6a 6apyyH A3A moaoop ryux YHJiAJMHH ©MHO, ayha scbsji Aapaa Hb 6ojioBcpyyjiajiT xhhx AapaaJiJiaac xaMaapM ajiraaTanraap TOAopxoHJiorAAor.

134

Page 132: Algorithmiin shinjilgee

Mod

3xhhh apra hb y p b m cn tc ohhx (p reo rd er ) apra iom. 3 h s apra Hb “ sxjissa YHAC3H (ax) 3aHrHJiaaHA o h o o r , Aapaa 3yyh A3A moaoha o tooa , 3U3c t hb 6apyyH A3A moaoha ohhx” rscsH peicypcT AYPM33p ayyH 6a 6apyyH A3A moa 6ypHHH xyBbA ryHil3Tr3rAA3r. 2Khiii33ji63ji ©mhox x scs rr 6aiiryyjicaH apH(J)MeTMK HJI3pXHHJUIHHH MOAHr 3H3 aprbir aiHHTJiaH X3BJI3B3JIYHJIAJIHHH T3MA3r Hb omho 6HHHrAC3H *a+*+bc*def apH<J)MeTHK HJispxHitoJi rapHa. 3 h3 y^JiAJiHHr Aoop y3yyjic3H koahh xscrssp toaopxohjdk 6ojiho. M oa 6aHryyjicHH Aapaa ctck Hb xoepTHH MOAHr 3aax raHu; 3aaniHHr aryyjDK 6aiiHa.

w hile ( ! stack.empty( ) ) { stack.pop(ptree |j ptree ->p rin t( ) ;i f ( c h i l d = p t r e e - > g e t r ()) s t a c k . p u s h ( c h i l d ) ;

i f ( c h i l d = p t r e e - > g e t l () > s t a c k . p u s h ( c h i l d ) ;

}

flsspx nporpaMMHH xscsr hb creKssc sxhhh Hsr 3JieMeHT aBCHaap moahxi Yhacsh aaHnuiaaHH ©rerAJiHHT xsbjisx 6ereeA 3yyH 6a 6apyyH A3A MOAbir CTeKT XHHH3. 3H3 yHJIAJIHfir CTCKT OpCOH A3Ai MOA 60Jir0HH XyBbA XMHCH33P moahh 6yx 3JieMeHTHHr xsBJisac rapraHa.

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.

XoepTHH moahh 3aHrmraaHyyAaA ohhx rypaB Aaxb apra 6oji xou ,opn ohhx (postorder) apra k>m. 3 h s apra Hb “ sxjissa 3yyH A3A moaoha ohooa, Aapaa 6apyyH A3A moaoha otooa , 3I|3ct Hb yr 3aHra;iaaHA ohhx” tscsh pexypcT AYPM33p TOAopxoHJiorAAor. G epeep x3Ji63Ji TyxaiiH 3aHrMJiaaHbi ererAAMiir jyyH 6a 6apyyH asa moahh ererAJiyyA x3BJisrA33A AyyccaHH Aapaa xsbjishs. 3 h 3 ap rn r apH<i)MeTHK haspxhh jijihhh MOAHr X3Bjisxsa auiHrJiaBaji yAjiAJiHto T3MA3r Hb xohhoo 6HHHrA3X IIoAbm T3MA3TJI33 rapax 6ojiho. 3AT33P apryyAHH peKypc amnrjiacaH x3Ji63pHHr Aapaa xoepTHH xaiiJiTbiH MOAHr cyAJiax yeA Y33X 6ojiho.

M oahh 3JieMeHTyyA3A o ra x a©P©b asx apra 6oji moahh Asspssc aooihoo 6a

135

Page 133: Algorithmiin shinjilgee

EyA32 9

3YYH33C 6apyyn rscsH TOni3Ji33p 3aHrHJiaaH# xyp#3r. 0 e p e e p X3ji6sji 3XJI33# YH#C3H 3aHFHJiaa 6yK)y 3XHHH TyBiiiHHrHHH erer#nHHr X3BJI33#, #apaa hb y#aax TyBiiiHHrHHH erer#rcYY#HHr 3YYH33C 6apyyH hhdisji# X3BJI3X 6aii#Jiaap TYBUiHHryYAHHH xyBB# #apaaJDK ryHii,3Tr3#3r. 3 h s a p ra r 6h#hhh omh© 6aHryyjicaH apH(f)MeTHK hjispxhhju ihhh mo#hbi xyBb# auiHrJiax hb HMapii an xoji6or#oJiryH iom. XapHH 3H3 aprw r amnrjiacHaap M o#ur xspxsH x sb jis x 6 a n ra a , uaauiHJi6aji y r a p r u r x sp xsH k o ^ h j i x 6 an raa hb 6 h # s h #COHHpXOJITOH IOM.

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

' f0 m h©x X3C3IT 6h# Mo#bir 3aar*i auinrjiaH #HHaMHKaap 3Qxhoh Sanryyjiax apraTaii TaHmmcaH 6hji33. 3 h3 apruH #aByy xan hb nporpaMMUH aauibiH HBija# mo# h h x sM x ss r #HHaMHKaap eepq jieH caHax o n r 3©b 3oxhctoh aiiMrjia#ar. XapHH mo#h h H3r sjieMeHTHiir #araji#aa# 3yyH 6apyyH 3aar*iyy# To#opxoiiJior#n;oroopoo hsmsjit 3an maap#nar. M oh HMap Hsr 3JieMeHT3# xypsxH H H Ty ji# 3aaBaji y h # c 3 h 3aH jHJiaaHaac 3X3Ji#sr 6a TyxaHH 3aHrHJiaaHaac sx 3aHmjiaa pyy m yy# 6yijax 6ojiom3ktyh.

3h3 xscsrT 6h# Mo#bir MaccHB auinrjiaH H3BTpYYJi3X apraTan TaHHJm'BS. XspsB mo# hb ryH ijs# xoepTBiH mo# 6oji TYYHHHr myraMaH MaccHBaap HJI3pXHHJI3X HJIYY TOXHpOM3KTOH 6aH#ar. XapHH MO#HH HHHT SJieMeHTHHH to o hb MaccHBMH X3M5K33T33p Xii3raapjiar##ar. XoepTbiH MO#Bir MaccHBaap HJi3pXHHJi3X ye# #apaax #ypm hht 6apHMTajiHa. YyH#:

(1 ) n 3JieMeHTT3H t r e e [n ] MaCCHBBIH t r e e [ 1 ] 3JieMeHT Hb MO#HH yH#C3H

136

Page 134: Algorithmiin shinjilgee

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.

Page 135: Algorithmiin shinjilgee

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.

3p3M63Ji3JiTbiH apryyAbir xapbixyyjrax ro j i xsivokyyp 6o ji t3 a i'3 3 p h h h aaouuiax xyrauaa iom. S p s m G s jis jith h h ajiropHTM UH ty jix y y p Y ^ jia s ji Hb xcipbuyyjicix 6a y r ra co m u ih o x ts c s h xoep y h a c s h YHJi/yi33p to a o pxoiijiorAAor. PsBq 3P 3m 63 ji3 jithhh ajiropHTMbiH xyBbA xapbuyyjrajiTbiH T oor h jiy y coHHpoxaor. AjxropHTMbiH axHJiJiax x y ra u a a r xaM n rnH M yy 6a AyHAa>K ts c s h xoep to x h o jia jih h xyBbA x s jis jiim s r . E ha n ©rorAJiHHH xyBbA a)KMJiJiax xyrauaa Hb n2 waapAax ajiropMTMaac sx jissa n logw m aap^ax a jiropH TM yyA ur y33x 6o jiho .

3p3M63Ji3JimHH anropHTMbiH ©op H3r X3M>KYYP 6oji iiiaapAar^ax h s m s j it

caHax ohh X3M3C33 k>m. 3apHM a jirop irm (iuaapnarAax Mam 6ara 3aiir yrc toouboji) hsmsjit 3aH auiHrjiaAarrYH 6aiixaA 3apHM Hb n ererAJiwiir AaBxap xa^rajiax hsmsjit 3attr uiaapAaac 6aiiAar.

3 p3m 63 ji3 jtt x h h ta s x ererAo^i Hb MaccHBT scbs ji acarcaajrraA xaArajiarAaac 6o jth o . n ©roFAJiHHr x a rc a a jrra A x a ^ ra jia x ye A n 3aar*iHHH h s m s jit 3a ii m aapA A ar. 3 p 3 m 6 3 ji3 J Ith m h a jiro p H T M y y A tir a u m u ia H a ca rca a jiT b ir jp3M63Ji3x xoep X3Ji63p 6a&Aar. 3aHrHJiaaHbi ©rorAAHHH xsm^css 6ara IOXHOJIAOJIA 3aHrHJiaaHbi 30bxoh o ro rA flH H r co jim jiuo x Hb toxhpom > ktoh OaiiAar 6o ji 3aHraJiaaHbi ororAAMHH x3M)K33 Hb acap to m (TyxaHJi6a ji o jio h ra ji6apaac t o t t o x 6H4Ji3r) to x h o jia o jia 3anra jraaHbi 3aarHyyAbir am u n i an G yxsji 3aHTHJiaar c o j ih j iu o x Hb h j iy y to x h p o m x to h . G e p e e p x 3 ji6 3 ji f)HiiJ i3rHH H T a ji6ap 6y p h h h yT ru r co jiH J iuo xb iH opoH A 3©bx©h xoep laHnuiaaHA xaMaapax 3aar4yyAHH y r rb ir eepHHJme. >KarcaajiT 3P3m6sji3x >KHHi33r 3H3 §YAfHHH t o ix t o j ia c o h to h 3p3M 6s ji3X a p rb ir a m iin ia H H3BTpyyjI3X 6o jih o .

XapHH MaCCHB 3P3M63JI3X YCA xoep 3JieMeHT COJIMJlUOXblH TyJIA H3M3J1T H3I' xyBbcani maapAJiararaH. 3 h a MaccHBHH xoep 3JieMeHT cojimjiuox swap ()(j)yHKUHHr TOAOpXOHJTbe.

template<class Type>

inline void swap(Type a[] , int i , int j) {

139

Page 136: Algorithmiin shinjilgee

9P3m63JI3Jithhh aHniiiH apryyfl

E y j ia r 10

llp o rp a M M b lH TOOIIOOJIOX aXHJI# H0JI00JI0X H3T YHflC3H YHW 3JI 6o ji 3 p 3 M 6 3 ji3 jit iom. 3p3M63J[3JiT Hb © rer^J iyY flH H r To^opxoH #apaa ju iaap TyxaHJi6a ji, ec©x©©p s c b s ji 6yypaxaap 3 o x h o h 6a H ry y jia x y ftW 3 J i iom.>Kh UI33JT63JI a.j , a?, ... , an © ror^JIHHr 0C0X00p 3p3M63JI3r#C3H T3B3JI ax <a2,< ... < an H oxuJ iira r xaHrax 6o jih q . 3p3M6aJi3r,ac3H © re r^e jiH b xaHJiTbir xyp jjac rax nyxa ji aq x o ji6orflO jrroH . X spsB © rer/m yy# Hb 3p3M63; i3r,n;33rYH 6o ji 6hm xyccsH ©r©nyi©© aBaxbiH T y ji# © renpiHH H 3XH33C Hb aapaajiaH xairxaac ©op apraryw . XapwH e re rn e ji Hb 3p3M63Ji3r ^ c 3H33p ty y h a xhmx xaitJ iTb ir xypziacrax 3apMM a jiropH T M b ir TOflopxoHJDK 6oJi#or. X a iu iTb iH ajiropHTM yyabir 6h a napaa #3Jir3p3HryH aBH y33X 6ojiho.

3 P 3 m 63 ji3 jitw h h aJiropHpM yy^bir cy ju iax 3 x h h h x3C 3 ir 6h a 3p3M63Ji3JiTHHH 3HFHHH apryynxaH TaHHJTiiax iom. 3p3M63;i3.JiT xhhx3# sH ra ifH a p ryya w r c o h fo x aapHM X3p3rjT33 6a uraapxuiara 6ait#ar. E p Hb 3p3M63Ji3x y h jia s ji Hb nporpaM M biH aaoibiH HBiiaa 3obx©h ra im y#aa (scb s ji u,0©x©h) XH iirAzpr. X 3p3B 3p3M63JI3r#3X © rerjp IH H H TOO Hb acap OJIOH 6 hUI 60JI 3HJTHifH3P3M63JT3JITHHH apryyn; Hb hjiyy YP amMITaH 6aiixaac ra#Ha H3BTpYYJi3Jrr 6ojioh uiajiraJiT xhhxs# x«Ji6ap 6aHAar. 3 h o ih h apryy# u©ex©H ©rerAJiHHH xvBbii HManr T0XHp0M3KT0H Gaidar. 0r©r^JiHHH ©©p H3r ©rerAQX x3Ji6sp 6oji ererjyiYY# Hb 6apar 3p3M63Ji3r#C3H (3CB3JI aJib xsitfiHH 3p3M63Ji3r^c3H!) 3CB3JI Mam ojioh T00HH tsh iiyy erew iYya; (TYJixyyp TaJi6apbiH erer^eji) aryyjicaH 6a*bK 6ojiho. Hhm 6yt3ixt3H ©rerzyiYYfls# 3P3m63JI3jithhh shjthhh apryyzi xapbiiaHryw H/iyy YP auiHiraH ryHijsTrsrftzpr.

3p3M63JI3JITHHH apryyH bir Cy^JiaXblH ©MH© 3p3M63JI3JITHMH 3apHM OHJITOJIT 60JI0H H3p TOMbeOJIOJITOH TaHHJIIl'bH. 3p3M63JI3r£3X ©r©r^0JI Hb X9fl X3fl3HT a j i6 a p y y ^ a a c T o rT o x 6H iu i3 rY Y ^ 6a io c 6o j io x 6a 3H3 to x h o j ia o j i# 3p3M63Ji3JiTHHr aJib H sr Taji6apbiH y rra a p x h h # 3 i\ 3 h s Taji6apb ir m yjixyyp T3>k H3pji3z^3r. 3 h 3 hom £ 3p3M63Ji3JiTHHH ajiropHTM yyipaH nporpaM M brr OHJirOMJKTOH, XHJlSapxaH 60JIT0X s o p m iro o p 6yX3JI TOO, T3MZt3IT 33p3r 3HTHHH

138

Page 137: Algorithmiin shinjilgee

Eynsz 10

Type temp = a [ i ] ; a f i ] = a [ j ] ; a [ j ) = temp;}

swap O 4>yHKii;HHr 3arBap cfryHKijssp To,a;opxoHJicoH 6a im a. P fH rs x TOAOpXOHJICHOOp yT 4>yHKli; Hb «M ap lI TOpJIHHH MaccHBHH xyBb# aXHJIJiaX G e re e # ko#h h #aBxnajib ir apHJiraHa. X sp3B 3arBap 6hiu 4>yHKij33p T0# 0pX0HJl60Jl char 6a in t T0p0JlT3H MaCCHByy#bir 3P3M63JI3XHMH Tyjm xoep e o p c^yHKH, 6 m u x maap#JiaraTaH 6©r00# T3#r33p 4>yHKUYYfl H t Aoopx 6aH#Jiaap Tp#opxoHJior#ox 6ojiho.

in l in e vailj-;:swap_int ( in t a [ ] , in t i , in t j ) { in t tem p.. =? a [ i ] ; a [ i ] = a [ j ] ; a [ j ] = temp;

}in l in e v o id sw ap_char(char a [ ] , in t i , in t j ) {

char temp = a [ i ] ; a [ i ] = a [ j ] ; a [ j ] = temp;} .

swap ( ) (JjyHKii, Hb cojihjiuox YiWPJi xh h x 6a h x3B*jji3H # otoo# #aBTajrraac #yy#ar##ar. Mh m # in l in e 4>yHKU33p 3apjiacaH 6aHHa.

9p3M63Ji3JiTHHH ajiropHTM hh ©op H3T Y3YYW P 6oji tyyhhh m o z m e o p m o ii

qanap iom. XspsB 3P3m63JI3Jithhh ajiropHTM Hb to ttb op toh 6oji hschji tyjixyyp TaJi6ap 6yxhh sjieMeHTYYA oop Taji6apaapaa moh 3p3M63Ji3r#c3H 6an#ar. )Khih33ji63ji oioyTHyy#HH 6H4Ji3THHr #YHT33p 3p3M63Ji3X3# yYC3X #apaajiaji# h^khji ayhT3^ oioyTnyy# H3p33p33 3p3M6sji3r#c3H 6aiiHa.

Cohfoh 3p3M03Ji3X apra

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

Page 138: Algorithmiin shinjilgee

3p3M6aji3jimuitH 3H8UUH apzyyd

f o r ( j - i+ 1 ; j<n ; j++) i f (a [ j ] < a [m in]) min = j ;

swap(a, i , m in);}

}

selection () 4>yHKUHHr M0H 3arBap (J)yHKU33p TO#opxoHJiJioo. i 6aHpjiaji# TYYH33C xohih opuiHX 3JieMehtyy#H hh xaMrniiH 6ara 3JieMeHT opho. j HH#eKCHHH TycJiaMacraHraap i #Yr33P 6anpjiajiaac xohwxh 3/ieMeHTYYfl33C xam rHilH 6ara sjieM eH TH iir ojdk ©mh©x xscsrT to#opxohjicoh swap () 4>yHKmiHr aoiMrjiaH yTryy#b ir cojikhc 6aHHa. ra#aa# #aBTajrr 6y io y i HHfleKCHHH #aBTajiT#yycaxa# MaccHB 6yp3H 3p3M63r#c3H 6aiix 6ojiho. 10.1 —p 3ypraap 8 6yx3Ji too aryy jiax MaccHBbir 3H3 ajrropHTMaap xspx3H 3p3M63Ji3XHr ajixaM aJiXMaap Hb Y3YYJIJI33.

©33 44 m 88 22 66 55

11( § )

44 77 88( § )

66 55

11 22@

77 88 @ ) 66 55

11 22 33@ >

88 0 66 55

11 22 33 44 (88) 77 66 ( § )

11 22 33 44 55@ m 88

11 22 33 44 55 66 88

11 22 33 44 55 66 77 88

3ypar10.1. CoHroH 3P3m63J13x apra

selectionSort () (fryHKIJ Hb H3r3HT 3arBap cJ)yHKU33p TO#OpXOHJIOr#COH Gojioxoop 6k# HMap h ©rer/ymiiH TepeJi 6yxHH MaccHBbir 3H3 cjDyHKiis# AaMXyyJiaH 3p3M63JDK 4a#Ha. }KHM33Jl63JI in t 6a c h a r T0p0JIT3H MaccHByy#bir #33px (J>yHKU3# xspxsH #aM)Kyyjiaxbir xapuraaa.

int a [8] = { 77, 33, 44, 11, 88, 22, 66, 55}; char s[15 ] = { 'a ' , # s ' , 1 o ' ,, ' r ' , ' t ' , 1 i ' , ' n' ,

'g' , ‘ e ' ,' x ' , ' a ' ,'m ' ,'p ' , ' 1 ' , ' e ' };

selectionSort(a , 8 ); se lectionSort(s , 15);

3p3M63JI3JITHHH 3H3 3HTC1HH apra Hb Maill U00X0H ©r©ra©JIT3H MaCCHBblH xyBb# caiiH axHJDia#ar. CoHroH 3p3M63Ji3x ajiropHTM Hb ©r©r#JiHHH anx ororaex #apaajuiaac yji xaMaapaH oHpojmooroop n2 xapbuyyjiajix, n cojihjiuox YHJi#3Ji XHH#3r. flsspx ajiropHTMaac aacHDiaBaji i ra#aa# #aBTajiTbiH ajixaM

141

Page 139: Algorithmiin shinjilgee

Eyj&e 10

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.

Hhm# nm X3MX33T3H hmht ererAJiTHitr 3p3M63Ji3X3,zi; n2 xapbuyyjiajiT 6a NM COJIHJIHOX YHJI,H3JI XHHH3. X3p3B N=0(M) 60JI 3p3M63JI3JITHHr 6yX3JI ererryiHHH xyBbji myraMaH rsw . xsjdk 6ojiox iom.

OpyyjiaH 3p3M03Ji3x apra

OpyyjiaH 3p3M63Ji3x ajiropHTM Hb coHroH 3p3M63Ji3x ajiropHTM hh a^HJi 3p3M63Ji3JiTHfiH 3HTHHH ajiropHTMyynbm Hsr 6eree,n; Marajjryft hjiyy y«H xaTaH, yp auiHrraH 6aii)K 6ojiox iom. 3 h s apruH ynflcsH yHJiflSJi Hb 3p3M63JI3rjIC3H M3CCHBT 3p3M63JI3JITHHr aJIJjar^yyJiaXTyHr33p IHHH3 3JieMeHT opyyjiax yftjifljissp Toflopxoiuiorm ior. G epeep X3JI63JI 3p3M63Ji3r,zjC3H sjieMeHTyyaHHH ihhhs 3JieMeHT33c hx 3JieMeHTYYAHHr H3r 6anpjiaji 6apyyH thh ih uihji>kyyjt3X 6aitnjiaap opBOJi 30XHX 6aHpjiajifcir nejieejDK erjjer. OpyyjiaH 3p3M63Ji3X aJiropHTMbir/japaax in se rt ionSort () <J)yHKU33p

Y3YYJIjI33-

template<class Type>void insertionSort (Type a [ ] , int n) {

fo r (in t i == 1; i < n; i++) {Type element = a [ i ] ; int j = i - 1;while (j >= 0 && element < a [ j ] )

a [ j+ 1 ] = a [ j —] ; a [ j+ l ] = element;

i } I

IIlHH33p opyyjiax sjieMeHTHHr ra^aa# jjaBTajrr i —r33p MaccHBbiH xoep jxaxb ^JieMeHT33C 3XJI3H aBHa. 3xhhh ajixaMA xaMTHira sxhhh sjieMeHTHiir 3p3M63JI3r^C3H MaCCHB T3X y33H XOep flaXb 3JieMeHTHHT 3XHHH 3JieMeHTT3H xapbuyyjiaH 6aHpjiajiur Hb ojichoop xoep 3JieMeHTT3H 3p3M63Ji3rflC3H

142

Page 140: Algorithmiin shinjilgee

3p3M63A3AmuuH 3HZUUH apeyyd

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

o p y y jix ©rex yh jias ji xHHr/pHS. 3 h s AaBTajrr Hb ujhh3 3JieMeHT33c 6ara 3JieMeHT Taapajm jaji XHHrAsx 6a xapHH hx 3JieMeHTyyA Hb xohu ioo (GapyyH TH iiiii) H sr u ih jiu ihh IHHH3 3JieMeHT3A 3aii raprax 6ojiho. Xsp3B ihhhs sjieMeHT eM H ex 6 yx 3JieMeHTYYA33C 6ara 6 a iix to x h o jia o jia j h h ack c 6araccaap MaccHBHH X3M)K33H33c (Tsrssc 6ara 6o jiox ) eH repq 6ojiox iom. 3h3 ajmaar 30xnijyyftax 3opHJiroop while AaBTajrraHA j >=o rscsH H exiyiH iir AaBxap opyyjDK erceH . Tsb1! 3H3 H exije ji hb j -hh h yrra T3r33c 6ara 6ojiooryH toxh o jia o jia 6ypT h jiyyasji u ia j ir a jn w ryHU3TT3>K 6aHHa. 3 h 3 h jiyyasji uiajirajiTaac 3a&cxHHX H3r apra 6oji MaccHBHH sxhhh 3JieMeHT3A XH3raapryH (5ara (m bcchbb ih 3JieMeHTyyA33c xapBU,aHryHraap 6 a ra ) yTra oJiroH auiHTJiaAar. 3 x h h h 3H3 3JieMeHTHitr x a p y y n 3JieMeHT rsac H3pji3A3r. Hnr3CH33p M3CCHBBIH 3XHHH 3JieMeHTHHr M3CCHBBIH YHAC3H 3JieMeHT33p aBaxryn 6ereeA a o to o a A aB Ta jn w whi le (element <a [ j ] ) rsac ryiiiisTrsHs. T3Bq hxshx toxh o jiao jia MaccHBBiH 3JieMeHTyyAHHH yrrBiH ao oa XH3raapbir ypBA^HJiaH toaopxoh jiox 6ojiomdktyh SaMAraac xapyyji 3JieMeHTHHH yTrbir iq i t o o x o a xyH Apsjrrs# 6aHAar. 3 h s ajiropHTMBir HaftMaH 6yx3Ji to o h m^cchbt xspxsH aatHJUiaxbir 10.2 —p sypraap Y3yyjui33.

© 33 4 4 1 1 88 22 66 5 5

7 7 ^ 3 3 ) 4 4 1 1 88 22 66 55

33 77 1 1 88 22 66 55

3 3 - * 4 4 ~ > 77- 88 22 66 55

1 1 3 3 4 4 77 <§> 22 66 55

1 1 3 3 ^ 4 4 -►77-h- 88- 66 55

1 1 22 3 3 4 4 7 7 - ^ 88-^§ ) 55

1 1 22 33 44 66- ► 7 7—► 88^5§ )

1 1 22 33 4 4 55 66 77 88

3ypar 10.2. OpyynaH 3P3m63H3x apra

143

Page 141: Algorithmiin shinjilgee

Eyji3e 10

OpyyjiaH 3p3M63Ji3X ajiropHTMHH xapbixyyjiajiTbiH t o o f (n ) 4>yHKUHHr eMHex aprbiH a#HJi x*ui6apxaH To#opxoHJi>K 6ojiho. 3xji33# xaMrHHH Myy toxho ji#o jt 6o jio x 6yypaxaap 3p3M63Ji3r#c3H ©r0r#nHHH ye# aBH y3be. 3 h 3 TOXHOJI#OJI# MaccMBbiH k #aXb 3JieMeHT 6ypHHH xyBbA #OTOO# flaBTaJITblH xaMrHHH hx k - i xapbixyyjiajiTbir ryttu3Tr3H3. 3 h #3sc

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)

T3^K TO#OpXOHJIOr#OHO.

O pyy jiaH 3p3M63Ji3X ajiropHTM Hb “ 6apar 3p3M63Ji3r#c3H” ©r©r#©Ji# uiyeaMciH aacHJiJia#ar. 3 h 3 Ye# 3JieMeHTYY# Hb H3H #apyn 6aiipjiajiaa ojiojc 6yioy #oToo##aBTajrraap xaMrHHH hx#33 1 -33c 2 y#aa xapMiyyjiarrr xhht#3H3. Hhm # n erer#JiTHHr oH po jm ooroop n xapbuyyjianrraap 3p3M63Ji3X 6ojiho.

!>BoMfjojiren 3P3m63JI3Jithhh apra

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

Page 142: Algorithmiin shinjilgee

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.

/[,33px 6©M6ejir©H 3P3m63ji3jithhh ajiropwTMH xapbuyyjiajiTbiH too opojiTbiH ororAJieoc yJi xaMaapaH HMap h toxhojiaojia

t (n) = (n-1) + (n-2) + ... + 2 + 1 = n (n -l)/2 = 0(n2)

raxc TOAopxoiijiorAOHO. XapHH cojihx yhaasji Hb ©r©rAJi©©c xaMaapHa. liyypaxaap 3p3M63Ji3rAC3H ererAJiHHH xyBbA3H3 ajiropHTM HbO(n2) cojihx

YMJIflSJI XHHH3.

l>apar3p3M63Ji3rAC3H ererAJiHHH xyBbA A33px ajiropHTMbiH xapbuyyjiaiiThiH roor 6aracrax 30pHJiroop 6ara 33psr ©epHJiejrr opyyjrwi. 0©phji©jit opyyjicaH xyBHJi6apur Aapaax <J>yHKU33p ysyy11 33-

t (;mplate<class Type> void bubbleSort (Type a [ ] , int n) {

bool sorted = fa ls e ;fo r (in t i = n - l ; i>0 && .'sorted; i - - ) {

sorted « true; fo r (in t j =0; j < i ; j++)

i f (a [ j ] > a [ j+ 1 ] ) { swap(a, j , j+1) ; sorted = fa ls e ;

}}

)H3 (J>yHKU3A s o r te d JiorHK xyBbcanmnr aiunrJiaH ao tooa AaBTaJiTaHA i YHTrsrflsx erei'AJiYYA 3p3M63Ji3rAC3H scsxHHr TorToo)K 4aAHa. 0©pe©p x ) ji 63ji ao tooa AaBTajiTaHA cojihjiuox yhjupji XHiirA33rYH toxhojiaojia MaccHB .uii, X3AHHH 3p3M63Ji3rAC3H 6aiix 6©r©©A 3HA33C 3p3M63Ji3JiTHHH aacHJUiaraar myyA 3orcoo)K 6ojiho. JXo to o r AaBrajiTaap xnnrA3X xapbuyyjiajiTbiH to o Hb

(n - l ) + (n-2) + ... + (n-k .) = k . * (2n - k -1 ) /2' # ' sorted sorted sorted

[Led Hb 3p3M63JisrAC3H xscsr MaccHBT TaapajiAaxaac ©mhox raAaaA ;ianTaJiTbiH XHHTA3X ajiXMbiH to o t HJi3pXHHJiH3. 0©p©©p X3ji63ji raAaaA liiBTaJITHH Isorted H0XII0JI 6HCJI3X xypTSJI XHHrA3X AaBTaJITblH TOO IOM.

145

Page 143: Algorithmiin shinjilgee

3p3M63A3Ji muuH 3muuh opeyyd

M H d e K cm e d d x u u H g m h q

k a[k)

m

MHdeKcmadcaHuu dapaak 0 1 2 3 4 5 6 7 8 9 1011 121314

a[k]

m

dpsMOancHUU dapaak 0 1 2 3 4 5 6 7 8 9 1011 121314

a[k] | A | A | E | E G | l L M|N o|p R | s | T | X |•S . '■

pM | 0 | 1 | 2 | 3 4 | 5 6 7 | 8 9 110 11|12|13|14|

3ypar 10.3. HHfleKcaap 3p3M6an3x apra

x a i w a x w H oponn a [p [i] ] rsac x a n n a x 6ojiho.

t e m p l a t e < c l a s s T y p e >

v o i d i n d e x S o r t (Type a[], int p[], int n) {

int i, j; T y p e t;

for(i=*0; i<n; i++) p[i] * i;

f or (i=l; i<ri; i++). {

t = p[i] ; j * i - 1 ;

w h i l e (j >= 0 && a[t] < a[p[j]])

p[j+l] * ptj--] ;

p [j+l] * t;

})

J l is p x aJiropHTM^ 30BX0H 3JieMeHTYYHHi*H xoopoHA TY-ntXYYP Taji6apaap xapbuyyjiaxbiH Tyjm, a [ ] MaccHBT xawaxc GaMHa. 3h3 4>yHKU3,n a [ ] MaccHBbiH uieMeHTHHr (00pHHr Hb) myyA tyjixyyp TaJi6apaap aBcaH. XspsmssHA a [] MaccHBbiH oronyiHftr tom 6HHJi3r33p XHJi6apxaH cojihh aiunniax 6ojiho.

)M3 apraap a [ ] m bcchbt HMapq ©©phjiojit opoxrYH 6a aHXHbi 0ren *c0H »p3M63Ji3rA33rYH 6aft1fl1aJiTait a/mn 6awx 6ojiho. Xsp3B 6HA3H,a a [ ] MaccHBbir uiH/iuirYH 3P3M63JI3X w aapiyiara rapBaji H3r3HT rapraH aBcaH hhackcmhh MaccHBbir auiMrJiaH xflji6apxan uihhashc 6ojiho. G ep oep X3Ji63/i 6na a [ ]

A S O R T i ] n |g E X a |m p 11_ E

0 10 8 14 7 5 j 13 11 6 2 12 3 1 4 9

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

Page 144: Algorithmiin shinjilgee

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.

HnmeKcaap 3p3M03Ji3x apra

3apHM to x h o ji^ o jia ererjpiyyzi; Maui tom 6Hlui3r33c t o i t o x ye# TyyHHiir 3P3M63JI3X3# 3apu yy jiax xyrauaaH bi a h h jis h x X 3 csr c o jih x y h jia s ji# xaMaap^ar. 3 h s toxh o ji^o ji^ undeKCUUH Maccue yycrsxc, e re r^ e ji^ eepq jiejiT XMHJiryHrssp sJieMeHTyyAHHH HHfleKCHiir y r erorAOJi 3p 3M63Ji3 r# c3 H 6aaxaap hhackcm hh MaccHBT xh v lrs t . 3p3m 63 ji3 jithhh 3H3 aprHH ye# erer^eJ i xa^ra jiax a [ ] MaccHBaac raAHa hhjo^ckc xaj^raJiax h sm sjit p [ ] HH^eKCHHH MaccHBbir aBTi HB^ar. H h^ckch h h MaccHB Hb ©renyiHHH MaccHB #axb ererOTYY^HHH HH^eKCHHr xa^rajiax 6a m h^ckchhii MaccHBT 6aapjiax tfapaajmaap ereryyiHHH MaccHBT xaHflBaji 3p3M63Ji3r#c3H ererAJiyyn rapHa. 0 e p e e p X3Ji63Ji p [ i ] Hb a [ ] MaccHBbiH xaMTHHH 6ara 3JieMeHTHHH MHfleKCHiir, p [ 2 ] Hb a [] MaccHBUH yuaax 6ara 3JieMeHTHHH HKweKCHifr rsx 6a*w iaap xa^rajma. 3p3M63Jianrr Hb Main tom 6Hqji3ryyzuiHr uihjdkyyjishCOJIHXblH O p O H A 3 0 B X 0 H H H A e K C y y f l H H H X O O p O H # COJIHX YHJUPJI XHH£3I\ 10.3

3ypraap hh ackch hh apraap 3p3M63Ji3XHHH ©mhox 6a 3P3 m63jichhh xiapaax a [ j 6a p [] MaccHByynbir xapbuyyjiaH y3YYJUi33.

MH^eKCHHH MaccHB yyc rsx a ss opyyjiaH 3p3M 6aji3x a p ru r aumrnacaH 4>yHKH,HHH KOAbir #oop y3Yyjui33. MHfleKCHHH MaccHBbiH aHXHbi yrryynbir p [ i ] * i T3)K OJirOCHOOp ©rOITJJIHim MaCCHBHH SJICMeHTSfl a [ i ] T35K

146

Page 145: Algorithmiin shinjilgee

Ey/iaelO

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.

C++ X3AHHH xyBbA HHAeKCHHH MaccHB YYcr3XT3H aAHJi 3ap4Maap 3aaniHHH MaccHB Y\;cr3H axHJTJiax Hb hayy toxhpomxtoh. 0 ep © ep X3a6sa p MaccHB Hb a MaccHBbiH sjieMCHiTYOTWH caHax oha 6anpjTax xaarHHr aryyjiax 6ojiho.

148

Page 146: Algorithmiin shinjilgee

3p3M63j\3Jimu(iH 3H2UUH apzyyd

XspaB maapAJiaraTan 6o ji yHuiMrq Ta A33px xoep cJ>yHKUMHr 3aai4HHH MaCCHBblH XyBJbA eep4Jl©H 6H410C 6o jiox IOM.

S h e 11- h h h apra

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.

T yxaiiH aJixMbiH 3anr h tsbsji MaccHBbiH h anxaM Aaxb 3JieMeHT 6yphhh xyBbA 3p3M63Ji3JiTHiir xh h x 6a MaccHBT 6HeH33C33 y*n xaMaapax h u m p xsr 3p3M63JI3rAC3H A3A X3C3r YYCH3- 00p0© p X3JI63J1 3XHHH 3p3M63JI3rAC3H X3C3IT MaCCHBblH 0, h, 2h ... HHACKCT3H SJieMeHTYYA, YAaaX 3p3M63JI3rAC3HxscsrT l , h + i , 2h + i ... HHACKCT3H 3JieMeHTyYA xaMaapax 6aiiAJiaap i = 0 , 1 , . . . , h - 1 XyBbA i , ( i+ h ) , ( i + 2h) , . . . HHACKCT3H 3JieMeHTYY^33C TOITOX h Iim pxsr 3p3M63JI3I'AC3H A3a X3C3r YYCH3. 3H3 YMJWIHHH h-HHH yrra Hb l-33p 3XJi3XAypbiH TooHyyAbiH Aapaanaji 6aHac 6ojiho. AjiropHTMbiH 3p3M63Ji3JiT Hb aJixMbiH 3aii h —h h h aBax yTryyAbiH Aapaajuiaac Maui hx xaMaapAar. TypuiHJiT 6o jio h cyAaJiraaraap 3p3M63Ji3JiTHHr yp auiHnraH 6ojirox h-HHH H3r Aapaajuibir coHHpxurooe.

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

Page 147: Algorithmiin shinjilgee

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

Page 148: Algorithmiin shinjilgee

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

Page 149: Algorithmiin shinjilgee

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 !

•* □ © □ m m D n a a a0 ® D Q 0 D D @ Q a0 0 □ m m □ 0 0 □ 0

' 0 0 0 m m a ® ® 0 0

'■0 0 0 0 0 0 0 0 0 m 0 0 0 0 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

Page 150: Algorithmiin shinjilgee

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.

>KarcaajiT 3p3M03Ji3x

3 h a 6 h a coH roH 3p3M63Ji3x aJiropHTM aiim rjiaH x a r c a a j n w 36bx©h KiHTHJiaaHbi ererAJiHHH yrryyAtir cojihjiuox apraap 3p3M63Jibe. 6 —p 6yji3rr

roAopxoHJicoH H3r xoji6ooct xarcaajib ir rnyyA aiiiHniaH swap va iu e ( ) 6a Mort ( ) THIIIYYH (^yHKUYYAHHr H3M>K TOAOpXOHJTbe.

c la s s L in k e d L is t {

v o id sw ap _v a lu e (N o d e * , N o d e * ); p u b lic :

v o id s o r t ( j} ;

In lin e v o id L in k e d L is t : : swap__value (Node * i , Node * j ) {Data t = i -> e le m e n t ; i - >elem ent = j - >e leraent;

153

Page 151: Algorithmiin shinjilgee

Byiiae 10

j - > e l e m e n t = t;

}v o i d L i n k e d L i s t ::s o r t () {

N o d e *i, *j, *min;

for(i = head; i != tail; i = i - > n e x t ) {

m i n = i;

f o r ( j - i ~ > n e x t ; j; j= j - > n e x t )

i f (j - > e l e m e n t < min->elernent) m i n - j;

swap__value (i , m i n );

})

IIlHH33p TO#OpXOHJICOH XOCp 4>yHKIIYYAHHH X3p3rJI33r Aoopx 2CHIII33 nporpaMMaap y3YYJIbe'

# i n c l u d e < i o s t r e a m . h >

# i n c l u d e < s t d l i b . h >

# i n c l u d e < t i m e . h >

v o i d main() {

L i n k e d L i s t list;

s r a n d ( t i m e (0));

for (char i = 0; i < 10; i-H-) { : . * Iy

l i s t .s e t L a s t ();

l i s t .i n s e r t ( r a n d ()% 1 0 0 ) ;

}l i s t .p r in t ( ) ; cout « endl; l i s t . s o r t ( ) ; l i s t .p r in t ( ) ; cout « endl;;

}

/]/33px nporpaMM caHaMcapryH coHrojrroop 0 — 100 xoopoH# opuiHX 10 Toor xarcaairraA opyyjicHbi #apaa 3p3M6sjDK 6aima.

XapHH xarcaanTwr 3p3M63Ji3x#33 saanraHH yrraap 6yioy 6yx3Ji 3aHrHJiaaraap H b cojoumox apraap nporpaMM 6h tox #aaJiraBpwr yHUiHrn TaH# yjW33e. 3h3 toxhoji#oji# opyyjiaH 3P3m63ji3x aprur awnrjiax Hb hjiyy ToxHpoMxeroJi. Yhhp Hb acarcaanTHH #yH# sjieM em opyyjiax#aa TYYH33C xohhi opuiHX 3JieMeHTYY#HHr hihjdkyyk3X maap^JiararyH 6a opyyjiaH 3p3M6sji3X apra Hb xapbuyyjiajiTbiH Toor 6aracra#ar. CarcaajiTtir 3aHrHJiaaHH xyBb# 3p3M6sji3X ye# xyxaiiH 3anrHJiaaHbi ©mhgx 6a xoh#xh 3aHrHJiaaHyy#bir M3#35K 6attx maap#JiaraTaH. Hhm33c h3M3jit xtnr'iyys, auinrjiax scbsji xoep xoji6ooct jKarcaaziTbir auiHrjiaBaji K0AiiHJi0P.bir X5Ui6apXHaap hjhh#3)k 6ojiho.

154

Page 152: Algorithmiin shinjilgee

ByJiar 11

3p3M63Ji3JiTHHH xyHA3BT3p apryy#

3 h3 6yjir33p y33X 3P3m63JI3jithiih apryyn; hb hjiyy YP ammraft 6ojiobh 3P3m63JI3jithhh 3HFHHH apryyAaac xapBitaHryH TOBorreii iom.

X yp^aH 3P3 m63 j i3 j ith h h ap ra

Xyp#aH 3P3M63JI3JITHHH (Quick s o r t ) aJiropHTM HB X3C3DI3H-H3nT3X apTBir a LUHrJiaH 3P3m63.ji3;it xHitasr. 3h3 aJiropHTM hb hhht ©rorAJnrar xoep xacarr xyBaaH, x scs r 6ypT yr aprBir peKypc aumrjiaH 3p3M63JiA3r. XypAaH >P3m63ji3/ithhh ajiropHTMBir aapaax qu icksort o (J)yHKH33p Y3YYJUI33.

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

Page 153: Algorithmiin shinjilgee

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

rscsH rypBaH xscryy# parxaHa. 3 h 3 xyBaa/irar juapaax apraap xaji6apxan h 3b tp yy ji^ c 6 o jih o . Y y h h h x y ji# 3 XJi3 3 # 3 UCHHH S a ap jia jijtaa o p o x 3JieMeHTMHr, xyxaHJi6aji a [ r ] coH roH o. /tapaa Hb a [ r ] 3JieM©HX33C hx 3JieMCHT xaapajmxaji mbcchbmh 3yyH xajiaac, a f r ] 3JieMeHT33c 6ara 3JieMenx xaapajmxaji MaccHBbiH 6apyyH xajiaac xaw/ix xhhh3. Xaii/ixaap o jijjcoh xoep 3j[eMeHXHPir xoop o ii# cojteok, xaHJixbir jiaxHH uaaiu ypraJDicjiYYJiHS. Xawjix Hb MaccHBbiH xoep Tanaac xyMHxacaap xoaopxoh Hsr 6aHpjiajm, 3epex xsp M0HHA 30rc0H0. 3H 3 6aHpJiaJi Hb a [ r ] 3JieMCHiHHH opox 6aapjiaji 60100,0, a [ r ] -aac 6ara 3JieMeHXYY# syyh Tajm, hx sjicm chryY# 6apyyH rajm 6anpjiacaH 6anx 6o jih o . 3 h s yHJijyiHHr 6h £h h h >khih33 ©rorjyiHHH xyBL# xspxsH ryn ipxrsxH H r 1 l.l — p 3ypraap y3YYJIJI33.

[a sjo R 1 T 1 1 n |g e |x |a M P|L|E

r A ! s n : n “ n T : n " ] A i M ( f i f e

a [ aJo ' l J , L . L ie ;xJs M P | L | E |

a ] a_ [e r i T ] 1 N | G j O | X | S M

A I A | E e|t| 1 n |g 0 1 x | s M P | L | R 1

3ypar 11.1. Xyeaax aneivieHaap xoop xacanr xyBaax

XaMrHHH 6apyyH xajibiH e 3./ie Me jiTH H r xyeanx 3JieMenm33p coH rocH oop 3YYH xajiaac xaiix xaHJir s 3JieMCHXHHr, 6apyyH xa/iaac xanx xan jiT a s jic m c h th k t ojdk, 3jir33p 3JieMeHTyYAHHr xoopoHA Hb c o jih h o . flapaaHMHH xaHJiiaap o 6a e 3JieMeHXYY-n, xoopon/ioo cojiHr/io>K, y^aax xaHJiraap Hb xoep xanux 3©pH0. Oopeep X3Ji63Ji ?yyh xajibiH xaHJir Hb r sfteMeHX ja,33p 3orcox Goroo/i xapHH 6apyyn xajibiH xanjix Hb r 3JieMenxHHH om hox e 3JieMeHT ,U33p 3orcoHo. 3Hrn;33c iiaaui xaHJix XHHrjisxryH 60x00# r 3JieMeHx h h h 6a n p jia j i HbMaCCHBMH X0TCT0JIHHH E 3JieMeHXHHH 3IJ(CHHH 6aitpJiaJI Y H H p 3 # r 3 3 p SJieMeHXHHT XOOPOHJI Hb COJIHHO. 3H3 YH[Jl#JIHHr XHHX p a rt i t ion () cfjyHKUHHH KO#bir #0 0 P Y3YY^33-

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

Page 154: Algorithmiin shinjilgee

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.

3h# xyp#aH 3p3M63Ji3JiTHHH aprwH aacwjuiax xyrauaar To#opxoHJii>e. 0 epeep x3ji63ji xyp#aH 3P3m63ji3jithhh ajiropHTM# uiaap#ar#ax xapbuyyjiajrrbiH Toor cpeHXHH (#yH#xaap) 6ojioh xaMrHHH Myy Toxnoji#oji#yy# toouoojiox 6ojiho. Xyp#aH 3p3M63Ji3JiTHHH ajiropHTM Hb ojioh HH3biH xyBHJi6apaap epr©Trer#eH cy#jiar#caap HpcsH. EpeHXHii toxh o ji# o ji# xyp#aH 3p3M63Ji3JiTHHH ajiropHTMLiH aacHJUiax xyrauaa Hb #yH#Hcaap o (N lo gN ) 6a xaMrHHH Myy r0XH0Ji#0Ji# o ( n2 ) 6an#ar.

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

Page 155: Algorithmiin shinjilgee

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

(2 ) YyccsH xoep A3A xscrssc xoep sjieMeHT 6aHpjiyyjiaH, aopboh A3A xscsr yycrsx

(3 ) ^(epBOH a s a xscrssc a ©Pboh sjieMeHT 6anpjiyyjiaH, HaHMaH a sa xscsr yycrsx

(4 ) HaHMaH A3A xscrssc HaHMaH sjieMeHT 6aHpjryyjiaH, apBaH 3ypraaH asa xscsr 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

158

Page 156: Algorithmiin shinjilgee

3p3M69Ji3JimuuH xyndaemap apayyd

6ypT xaMrHHH hx#33 n xapmyyjianrr XHHr/msr ynnp ajiropHTMHH aaouuiax xyrauaa hi>

f (N) = O (N logN )

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

Page 157: Algorithmiin shinjilgee

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 .

XypAaH 3P3m63j13jithhh aprnr canxpyyjiax ©op Hsr caHaa 6oji ojioh aaracHr A3A X3CrYYA3A peKypcT AyyAaJIT XHHX3SC 3aHJICXHHX IOM. YyHHHr IHHHASX H3r apra 6 o ji peKypcT AyyAaJiTbir uiajirax i f ( r >1 ) hoxixjihht oophjioh, HMap H3r m yrrbiH xyBbA ( r - i <m) HoxmwMr xaHrax toxhojiaojia opyyjiaH 3p3M63Ji3X aprbir AyyAaxc Gojiho. Gopoep xsjiGsji xypAaH spsmGsjisjithhh aprnr m —ssc ojioh 3JieMeHTT3H A3A X3crYYA3A auinrjiaaA, xapHH opyyjiaH 3p3M6sji3x aprnr 3JieMeHTHHH TOO Hb M —33C 6ara A3A X3C3IT auuHrJiax iom.

qu icksort () (fcyHKUHHH i f (r > l ) HOXUJIHHr i f (r-l>M ) TSCSH HQXiyieep oojibCHoop m —33c U00X0H 3JieMeHTT3H A3A xscryyA uaaui xyBaarAaxryn iom. 3h3 Hb peKypcryn ajiropHTMHH xyBbA m —33c u©©x©h sjieMeHTTsn A3A o c rn iir c tck t xaArajiaxryn. XyBaajiT XH#rA33A AyycaxaA onpojiuooroop m rooroop YeHJi3rAC3H, Gapar 3p3M63Ji3TAC3H MaccHB yych3. G©pe©p X3Ji63Ji s x h h h (on p o jiu o o ro o p ) m 3JieMeHT MaccHBbiH xaMrHHH 6ara yTraTaii 3JTeMeHTYYA33C to ito x 6a xaMrHHH cyyjraiiiH m 3JieMeHT MaccHBHH xaMrHHH hx yrraTaH sjieMeiiTYYA330 to n o ho r3C3H yr. OpyyjiaH 3p3M63Ji3x apra Hb H HM 6YT3UT3H ©rorABJIA XaMHiHH YP AYHT3H 6aHArHHr 0MH0X 6yJIT33p M3A3MC ancaH 6hjt33.

XypAaH 3p3M63Ji3JiTHHH aprnr canxpyyjiax AapaaiHHH apra 6oji “ xyBaax” 3JieMeHTHHr 30B cohtox JiBAaJi iom. 9ha xsa X3A3H 6oaom x apHrAaac 6oaqx iom. XaMrHHH Myy toxhojiaa00c 3aHJicxHHx H3r apra 6oji TyxaHH xyBaarAax A3A xscrssc xyBaax 3JieMeHTHHr caHaMcaprynrssp coHrox iom. HHrscHSsp xaMrHHH Myy toxhojiaojia xypsx MaraAJiaji 6aracAar. Bhahhh ©mh© aBcaH ajiropHTMA xyBaax 3JieMeHTHHr TyxaHH asa xscrHHH xaMrHHH byyJiHH&H 3JieMeHT33p COHTOX 6aHCaH 6HJI33.

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.

Page 158: Algorithmiin shinjilgee

3p3M6aji3A muiiH xyndsemsp apeyyd

Xap3B rypBaH 3JieMeHTHHr Tyxaim xscthhh 3XJI3JI, Tercreji, AyHA Tajiaac coHrox toxhojiaojia xapyyji sjicmchthhh YYprHHr GypsH op jiox lia#Ha.

3h 3 aprw r aypean aAeMenmuuH Meduan rsac H3pJi3A3r. XaMrHHH Myy toxmojiaoji Gojiox 3p3M63Ji3rAC3H ererAAHHH ye# 3H3 apra h l Tyxawn xscrawr (xapbuaHryn) tsh u yy xoep xscsrr xyBaaAar. HHrscHssp xaMrHHH Myy TOXHOJwibiH aaoiJiJiax xyrauaar caHxpyyjiHa.

,Z^33px rypBaH cairacpyyjiaJiTbir (peKypcryH, rypBbiH-Me#HaH, auDKHr #3# xscryyAHHr #axHH uaain xyBaajiryH spsm Gsjisjithhh eep apra xspsrjisx) HHHJiyyji3H amnrJiacHaap aHXHbi peKypcT ajiropHTMbir 25% -30% caHJKpyyJwar.

XypAaH 3P3m63JI3Jithhh apraTan xojiGootoh Hsr xsp3Di33 Goji erer#ceH TooHyyAaac MeAHaH 3JieMeHTHHr ojiox iom. 3h3 X3p3ni33 Hb 3apHM CTaTHCTHK ToouooJiJibiH ye# epreH ToxnoJiAAor. Yyhhhf uihh#3X H3r apra 6oji erer/yiHHr 3P3M63JI33#, Aapaa Hb rojibiH Gawpjiajibm 3JieMeHTHHr aBH Gojiho. T3rB3Ji Gha xyp#aH spsmGsjisjithhh ajiropHTMHH xyBaax npoueccbir ainHFJiaH MeAHaHwr HJiyy xyp#aH toaopxohjdk 6oSox iom.

Cyypnap ap3M63Ji3x apra

AJiHBaa 3P3M63JI3JTTHHH aJiropHTMA anmrjiarAax Tyjixyyp sjicmcht Hb sapHM X3p3rJi33HHii xyBb# xyimp3JiT3H GaiiAar. ^KhiiissjiGsji Tejie<jx)H yracHbi jiaBJiax, homhh caHrHHH KaTaJior 33psr cncTeMHHr Aypb#a>K 6ojiho. Hhm chctcma Tyjixyyp sjieMeHTyyAHHr xapbuyyjiaxAaa TyjixyypHMH yrrbir GyxsJiA Hb auinrJiaxaacaa TyjixyypHMH 3apHM xscranr amnrjiaAar. >Khiii33jiG3JI XyMyyCHHH H3pC33p 3P3M63JI3JIT XHHXA33 A yCT33p 3X3JIC3H H3pCHHT H3r X3C3IT, E ycr33p 3X3JIC3H H3pCHHT eep H3r X3C3IT T3X M3THHJI3H 3XHH& ycrHHH xyBbA 3p3M63Ji3H 6yji3rji3A3r. flapaaqHHH ajixaMA Gyjisr Tyc GypHHr, TyxaHJiGaji A ycrssp sxsjicsh HspcHHr xoep Aaxb ycr33 p xapbuyyjiaH 3p3M63Ji3JiTHiir xscsr AOTop Hb A3A 6yji3rji3ji yycr3H ryiiusTreAsr. H i i M

apraap 3p3M63Ji3JiT xhhx toxhojiaojia xapbuyyjiajrrbir ropcHHH 6yx ycrHHH xyBbA GhLU 3XHHH X3C3T ycrHHH XyBbA XHHA3T.

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

Page 159: Algorithmiin shinjilgee

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.

Cyypnap 3p3M6sa3X aaropHTMa; 6ka (ty jixyyp xoopoHjiLiH ) xaptuyyaax yfiaaaHHH opoHfl 6hthhh 433px yiiaiuiYYAHiir aimiraaH 3p3M63Ji3JiTHiir xn iix 6oano. flapaax KJiaccaap 6yxsa to o h TYJixyypT xn iira3x 6h thhh ffts iW ffp aap xaHrar/ican ereraaHiiH XHiicBsp Tepea TOflopxoHJite.

c lass b i t s k e y (

i nt x;

public:

b i t s k e y s o p e r a t e r—(int i) {

x = i; r e t u r n *this;

}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

Page 160: Algorithmiin shinjilgee

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.

3hJX aBH Y 3 3 X 3p3M63JI3JITHftH aJlTOpHTM Hb fl33pX CaHaaH S33p YHHscjishicsh. G e p e e p x3Ji63JI ty jix yyp aaeMenTHMH xa pb u yy jia jm ir TY-HXYYPHMH opoHryyzibiH xyiibH xh h h s . Fsbh ajiHBaa t o o h h opoHrnftH yrra Hi. HMap to o j i j ih h CHCTeMzi fmiHr&CHssc xaMaapn eep ©ep yxraTaH Saiiflar. Ehuhhh aMbapa-tin auiHrviarAuar 6 m n 3 T Hb apaBTMH to o j i j ih h chctcm iom. }KHlII33Jl63JI apaBTMH TOOJIJIblH CHCTeMHHH 1101 T3C3H TOO Hb i * i o 3,+ i* ia 5 + 0 * io + i T3C3H yrraTaii 6aifcp;ar 6ojr xoepTbiH to o j i j ih h chctcm ji 6n'iitra,c:j)f 1 1 0 1 racsn to o Hb i * 23+ i * 22+o*2+ i (.==13 apaBTbiHto o jio jia ) recsH yxxaxaii 6aitaar.

E p e H X H ii TOXHOJmoa, aiia(i J...a,a1a0 TOOT

a.b-’ + a.,_,b”^ + ... + + aJb * &g'' ( 0<a;< b, J=0, 1 , 2 , ... , n |

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

Page 161: Algorithmiin shinjilgee

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

Page 162: Algorithmiin shinjilgee

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

mmm" i Ti r r n

I n i i i x r n« | e { E | © | m am LEO. U■ r a m M W TXi.XT!

^ 1 1 N IMI L IO ^ 1.

m m rm

r t i p i r fx i

«M E»J£fenrs|R |p|TBB r T ^ : r T ~ i T T n p i R T s i i s i

3ypar 11.3. Cyypnap apaM 6anax apraap yyC3X fla fl xacryyfl

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

Page 163: Algorithmiin shinjilgee

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) ()

Node *root;

public:

Ml

© p

3 y p a r 1 1 . 5 . XoepTbiH xafinTWH moa

167

Page 164: Algorithmiin shinjilgee

Eyjiaz 11

A M A 0 0 0 0..1. A 0 o M f A 00 0® fe A © o o o i o o o c I

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.

Page 165: Algorithmiin shinjilgee

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

Page 166: Algorithmiin shinjilgee

3p3M6aA 3A muiiH xyHdaenisp cipzyyd

mo#hh HaB4 6ojiox y4Mp 3YYH 6a 6apyyH#3# mo#hm 3aar4H# n u ll yrra ojiro)K 6aHHa. Xap3B xoepxuH xbh jithh m o# xoocoh mo# 6aiiBaji iiihh3 3aHrmiaa tp hb yh#c3h 3aHnuiaa 6ojiho. Eyca# toxhoji#o ji# uimhs 3aHrajiaaHirf yrraac xaMaap4 p tp 3aHrHjiaaHH 3yyH scbs ji 6apyyH #3# 3aHrHJiaa 6o ji#or. }Khiii33ji63ji 11.5 —p 3yparr aBcaH xoepTbiH xaiiriTbiH mo#oh# 55 rsc3H 3JieMeHT opyyjiaxa# yh#C3H 3aHriuiaa 38 —aac 3XJI3H, HaB4 sanrHJiaa 51 xypT3Jix 3aMMH # a ry y 6a ftp jiax 38, 58, 51 rs csH 3JieMe htyY£T3H xapbijyyjiar#aH 51 r3C3H saHrajiaaHbi 6apyyH #3# 3aHrMJiaa 6o;i#or. 3h3 YHJi#JiHHH yp # Y H r11.6 —p 3ypraap Y3YYJlJI33.

3ypar 11.6. XoepTbiH xavurrbiH moaoha aneMem opyynax

U Ih h s erer#e ji 55 Hb 3XJI33# 38 —aac h x y4Hp 6apyyH cajiaa pyy ow o k , 58 — Taft xapbiiyyjiar#aH 6ara ynnp 3yyh cajiaa pyy o4H>k , 51 —aac hx y4Hp m ©h 6apyyH cajiaa pyy 04H0. 51 —h h h 6apyyn caJiaaH# 3aHrHJiaa 6aHxryH yqpaac 55 T3C3H 3aHrHJiaa sh# op^K 6aftna.

'3h#33C Y33X3# xoepTRH xaiurrbiH m o a h u xanGsp Hb mo#oh# opox erer#/iHHH iiapaajuiaac xaMaap#ar 6ojiox Hb xapar#aac 6aftHa. 11.5 — p 3ypraap Y3YY-TCC3h mo# h h er©r#JiYYA 38, 58, 13, 15, 51, 27, 10, 19, 12,. 86 tscsh #apaajuiaap opcoH. Xsp3B orer/piHftr ecexeep 3p3M63Ji3r#c3H #apaajuiaap opyyji6aji fiapyyH Tauiyy mo#, 6yypaxaap 3p3M63Ji3r#c3H #apaajwaap 0pyyji6aji 3yyH

ramyy mo# YYc- 3r-

ijapaax ko# h h x scsrr BSTree KJiaccaap To#opxoftJior#ox xoepraH xaftjiTbiH mo# yyciSH n e rer# e ji opyyjiax 5iOfiii33r V3YYJIJ533.

USTree<int> tree/ // ByX3JI TOOH XOepTHH XaHJITUH MO#fo r (in t i -0 ; i<n ; i++ ) {

cin » k/ t r e e . i n s e r t ( k ) /

j ’ ‘ - - ;

XoepraH xateruH mo#oh# xwftr#3x #apaa4HKH *iyxa« 6oji mo#oop

169

Page 167: Algorithmiin shinjilgee

£yji3211

iy a x \YuifKjJi iom. 9 - p oyjirs jp y jc s h xoepfbiH moaoop lynx aJiropHTMyy#tir xoepTbiH xaiuiTHH Mo^oHfl 6yp3H auiHrJiax 6ojiom:hctoh. T sA rssp aJiropHTMyyabiH Tsrrn xsmt (inorder) apra Hb xoepTbiH xataTbiH moahli sjieMeHTYYfls# 3p3M63Ji3r#c3H #apaaJiJibiH Aaryy ryft^sr. Gepeep xsjiSsji T3rm X3MT aprbir auinrjiaH xoepTUH xaftjrrbiH moaoop ryiiH xsbjisxsa erer^JiHiir 3p3M63JisrAC3H 6aft#Jiaap rapra#ar. 3 h s naHapur auinrjiaH 3P3M63JI3JIT XHHX ajiropHTMbir AapaaHHHH X3CI33p TOAOPXOHJIOX K)M. 3 HA 6HA xoepTUH XaHJITblH MOflWr X3BJI3X YHJIAJIHHr peKypcT in o rd e r () 4>yHKii33p H3BTpyyjibe.

template <class Type>void BSTree<Type>:: inorder(Node *tp) {

i f ( t p - > l ) in o rd e r (tp -> l); cout « tp->data « " i f ( t p -> r ) in o rd e r (tp -> r );

}

^33px (JjyiiKIi; Hb Tsnu XSMT ajiropHTM ecoop 3XJI33A MOAHbl 3YYH #3# MO#OOp ryit>K, Aapaa Hb TyxaHH laHrajiaaHbi y n w r xsbjissa, s i js c t Hb 6apyyH #3# MOflOOp ryHH3. 9-p 6yjip33p TOAOpXOHJICOH ajiropHTM# 3YYH A3A MOAOOp ryHx#33 AaMXHH BHrepceH 3aHriuiaaHyyAbir c tc k t xa#raJDK, yjiMaap creKssc rapraH 6apyyn #3# m oaoop r/ toc 6aHcan. TsrBSJi sh a peKypcbiH 6yuax 3ap'iMbir auinrjiaH 3yyH A^A m oaoop ryfixASS AaMacHH eHrepceH 3aHTHJiaaHA Gyuaac Hp3H 6apyyH A3A m oaoop pexypc auiHr/iaH ryibK 6aiiHa. inorder () 4>yHKU Hb yhacsh sanrHJiaaHaac 3XJI3X yqpaac ryyHMHr AyyAaxAaa yhacsh 3aHrH)iaar apryivien ;aap Ai*M3&yyjiax ecroH. XapHH yhacsh 3aHrHJiaar 3aax root 3aar«I Hb BSTree KJiaCCblH private rHIHyyH yHHp nporpaMMbiH X3CT33C xa iw ax GoJioMiKTYH. H hm a yhacsh 3aHrHJiaaHbi xa a ru r 6yijaax getroot () 4)yHKU33p xaHraac erceH . inorder o 4>yHKijHHr nporpaMMaac (m aino <J)yHKij33c) AyyAaxAaa

tre e . in o rder(tree . getroot( ) ) ;

rsac pyy Run.

3H3 AampaMA inorder () <J)yHKUHilH aAHJI XOepTWH XaHJTTblH MOAOOP ryftx 6ycaA apryyAbiH peKypcT 4>yHKijHftr xaJi6apxaH toaopxohjdk 6ojiho. TyxafiJl6aJI A33px inorder () <J)yHKUHHH KOAHT preorder () (fryHKItfita XyBbA ererAeji xsbjisx MepHHr peKypcT xoep AyyAajrrbiH eMHe opyyjiaH eepqHJDK erne. XapHH postorder () (JjyHKUHHH xyBbA peKypcT xoep AyyAajrnjH Aapaa X3BJI3X MepHHr opyyjDK erae.

XoepTbiH xaHJiTHH moahooc 3JieMeHT xaftx yHJiAJiHHr AapaaquHH Syjirssp OHUJIOH aB«I flpHX 6ojiho. XapHH 3HA 6hA XOepTblH XaftjITHH MOAHOOC

170

Page 168: Algorithmiin shinjilgee

9p3M63A3A.mii uh xyndsemap apeyyd

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 .

YcTrax 3aHrHJiaaHH mo#oh #axB 6aitp;iajiaac xaMaapn ycTrax Y**Jifl3Ji HJiraaTaftraap xHHrjwsr. YyH H :

(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 .

(2 ) Ycrrax 3anrajiaa 30bxoh 3yyh #3# 3aHrajiaaTaif (m o^toh) 60# TyyHHHr 3aax 3X 3aHrKUiaaHBi saarm itr ycrrax 3aHrajiaaHBi 3yyh #3# 3aHnuiaar 3aajiraa#, yr 3aHnuiaar ycrraHa.

(3 ) YcTrax 3aHrHJiaa 30BX0H 6apyyH #3# 3aHrajiaaTaH 6oji TYYHHftr 3aax sx 3aHrHJiaaHBi saa rc flfttr ycTrax 3aHrHJiaaHBt 6apyyH # 3 # 3aHrHJiaar 3aajiraa#, yr 3aHrHJiaar ycrraHa.

(4) YcTrax 3aHrHJiaa 3yyH 6a 6apyyH xoep #3# 3aHrHJiaaTaH 6afea .

r3C3H #epB0H ajnraaTaii toxhojwoji 6aH#ar. CyyJiTOftH (4) ToxHo/iz^iBir p ro c e ssL e f tMost ( ) (})yHKJU[HHH TycJiaMacTaiiraap rynusTrsx 6ojiho. deleteNode () (J)yHKHHMH KO/JBir AOOp Y3YYjiji33.

template cclass Type>void BSTree<Type>:: deleteNode(Node *&tp) {

Node *tmp;

171

Page 169: Algorithmiin shinjilgee

Eyjise 11

I f l . t p Hb HaBM yei\ i f ( ( t p - > l == NULL) && ( t p - > r == N U LL )) {

d e l e t e t p ; tp = NULL;| '

// Jr. t p Hb 39BX0H 3YYH R 3& 3aHrHJiaaTaw y e # e l s e i f ( ( t p - > l != NULL) && ( t p - > r == N U LL )) {

tmp = t p ; t p = t p - > l ; d e l e t e tmp;

i - ; ;

I f 3. tp Hb 3©BX0H 6apyyH H3R 3aHrn;iaaTaH ye#e l s e i f ( ( t p - > l == NULL) && ( t p - > r != N U LL )) {

tmp - tp ; tp = t p - > r ; d e l e t e tmp;

l-H

f t 4. t p Hb 3yyH 6a 6apyyH R3R 3aHTHJiaaTaH ye# e l s e

t p - > d a t a = p r o c e s s L e f t M o s t ( t p - > r ) ;} \

U,epB0H HJiraaTaii TOXHOJiiyiyyabiH TaMJiGapbir JX33px (J>yHKiilHHH xapraji3ax KOAbiH xacrwHH 0MH0 TaBbcaH. CyyjiHHHH ToxHo/moji 6yioy ycTrax 3aHriuiaa 3yyH 6a 6apyyH xoep H3ii 3aHrHJiaaTaii ye# ycuax xoep HH3WH 6ojioack 6aiinar. 0 ep e ep x3ji63ji ycxrax saHriuiaaHbi 6aHpJiajiIa, ihhjdkhx xoep HJiraaTaii 3aHrHJiaa 6aim a r3C3H yr. YyHHH 3©BxeH HsroiHr coHroxoa xaHrajrraw iom. Bhuhhw coHrox saHrB&aa Hb ycxrax 3aHrHJiaaHbi 6apyyH R3& 3aHrMJiaaHW xaMrHHH 3yyH R3R 3aHrnjiaa iom. 0op©ep x3ji63ji ycTrax 3aHnmaa 6a TyyHHH 6apyyH « 3aHrmiaaHbi xoopor-T# (yTraapaa) opniHX saHrmiaaHyytfbiH xaMrHHH 6a r w coHrox iom. >Khoj33ji63ji 11.6 — p 3ypraim XoepTbiH xawirbiH MonHbi yhacsh 3aHra.riaar ycTraxa.ii, 51 T3C3H saHTHJiaa ynn;c3H 3anrHJiaana LLIHJDKHH3. 3H 3 yilJWIHHr Z^apaax p r o c e s s L e f t M o s t ( ) <})yHKU33p H3BTPYYJUI33.

t e m p la t e < c la s s Type>T yp e B S T re e < T y p e > : : p r o c e s s L e f tM o s t (N o d e *& tp ) I

T ype d ;N ode* tm p;i f ( t p - > l == NULL) (

d == t p - > d a t a ; tmp = t p ; tp = t p - > r ;

172

Page 170: Algorithmiin shinjilgee

3p3M63A3jimuuH xynd3em3p apzyyd

d e le te trap; retu rn d;

}e ls e

retu rn p r o c e s s L e ft M o s t (t p -> l ) ;}

p rocessL e ftM ost o Hb ihhjdkhx 3aHrHJiaaHbi ororAJiHHH ym>ir 6yuaa3C 6aHHa. XapsB ihhjdkhx aaHrmiaa Hb 6apyyH #3# 3aHrHJiaaTaH Goji 6apyyH A3A 3aHrajiaa Hb hihjihihx 3aHnuiraaHH Gawpjiaji# opHo. 3h3 yhjiasji Hb tp = tp -> r rscsH Gnqjisrssp xhhta3H3. Y m p Hb tp aaara Hb c^yHKiiHHH apryMeHTa#xyBbcarinfflHT0Ji00Jic0HH3p33p (Node *&tp) To^opxoMjioithcoh.

XoepTbiH xaHJiTbiH MOAHOOC 3JieMeHT ycTraxAaa #apaax koamh x3C3it Y3YYJicH33p ryHU3Tr3X 6ojiho.

cout « "D e le te d a t a : " ; Gin » k; t r e e .d e l e t e l t e m ( t r e e . g e t r o o t () , k ) ;

3 h 3 yhjwjihhh Aapaa MOAbir AaxHH xsbjisjk 3JieMeHT ycTrarAcaH scsxmht majiraac 6ojiho.

X o e p m b iH x a w im b m M o d a u iu e / ia n 3 p 3 M 6 3 J i3 x a m o p u m M

3p3M63JI3JITHHr XOepTHH XaHJITblH MOAOOp i n o r d e r ( ) 4)yHKE(HHH TycjiaM>icraHraap ryHU3TT3X Gojiho. © m h o x sc s it toaopxohjicoh in o rd e r ()4>yHKUHHr 30BX0H MOAHbl OrOTAJIHHr X3BJI3X 30pHyJiaJITaHraap H3BTPYYJIC3H 6hji33. T3FB3JI3HA a [n ] MaccHBbiH 3JieMeHTyyAHHr 3P3MG3JI3X 3opHyjiajrraap in o rd er () (JjyHKUHHr AaXHH TOAOpXOHJIOX GOJIHO.

XoepTbiH XaHJITblH MOA aiHHTJiaH 3P3M63JI3X ajrropHTMbir Aapaax treeSort () (J)yHKH33p Y3YYJU133-

tem plate < c la ss Type>vo id t reeSort (Type a [ ] , in t n) {

BSTree<int> t ree ; i n t i ;f o r ( i = 0; i<n ; i++ )

t r e e . i n s e r t ( a [ i J) ; t r e e . i n o r d e r ( t r e e . g e t r o o t ( ) , a ) ;

}

^3 3 px (JyyHKiPA 3XJI33A a MaCCHBblH 3JieMeHTYYA33P XoepTbiH XaHJITblH MOA Yycrs^c GaftHa. ZJapaa Hb ino rder () 4>yHKiiMHH TycjiaM^cTaMraap moaoop

ryaxA33 sJieMeHTyyAHHr a mucchba 6yii;aaH ojiro)K Gainia. 3A rssp yhjwimhh

173

Page 171: Algorithmiin shinjilgee

3p3M63A3JimmiH xyndaetmp apzyyd

xaMraftH hx 3JieMeHT 6aiipjiax 6a 3aHrHJiaa 6ypHHH yrra hi> eepH in ixee xoep (3YYtt/6apyyH) A3A moahm 6yx 3aHnuiaaHbi yrraac hx 6aiiHa. 11.7 —p aypraap heap XOepTBIH MOAHbl 3KHW33r Y3YYJUI33- V * ererAJiHHH 6YTH.3A TOAOp xoHJiorACQH ymji/uihhh uiaapAnaraap ty yh h h t MaccHBaap HJi3pxH#JiA3r.

Bha 9-p 6yJir33p ry#U3A xoepraH moamt MaccHBaap xspxsH HJ13PXHMUI3X apraTaii tobh TaHHJiucaH 6hji33. XoepTWH m oah t MaccHBaap HJispxHitacsH ioxhojUaojia ajiHBaa j (HHAeKCTS#) 3aHrHJiaaHM xoep A3A 3aHrHJiaar 2 j 6a 2 j + i 6aHpJiaJiyyAaap ojdk asaxaac raAHa tyyh h h sx 3aHnuiaar j/2 ( j hb coHAroH toxh o jiao jia 6yx3Ji xscar Hb) 6anpjiajiaap ojdk aBax 60Ji0MXT0ii. •)Arssp 6aHpJiajiyyA Hb moahm yhacsh 3anrHJiaa MaccHBbiH 1 hh askctsh fiawpjiajiaac sx jisx yeA ToxnpAor. O e p e e p x3ji63ji yh acsh 3anrHJiaa Hb MaccHBbiH 1 -p HHAeKCT 6aHpjiaBa/i tyyh h h 3YYH A3A 3aHrHJiaa Hb 2-p, 6apyyH A3A 3aHnuiaa Hb 3-p h h ackct 6aiipjiaHa. 2-p h h ack ct xapraji3ax (yh acsh in h iHJiaanbi 3yyh A3A) 3aHi’HJiaaHbi xoep A3A 3aHrHJiaa Hb xapran3aH 4 6a 5 -

t> HHAeKCT 6atpjiajiyyAaA rsx m sthhjish TOAopxoHJiorAAor. Tsbh C-/--/-xsjihhh MaccHB Hb 0 HHAeKC33p 3X3JIASr y 'lH p 6ailpJiaJI TOAOpXOHJIOX A33px it >ouoojioji Hb 3©pHHJiAA©r 6oJioxbir ©mho AypbAcaH 6hji33. XapHH nporpaMM f>HMHX3A h jiyy Xflji6ap, yH iiiHnAaA oibiroMHcroH 6aMx YYAHSSC moahm yhacsh vm i HJiaar MaccHBbiH 1 hh ackctsh 6aiipjiajiA TOAopxoHJibe. G epeep x3;i6sji hoap-HHT HJI3pXHHJ13X MBCCHBblH 0 HHACKCT3H SJieMeHTHHTainHDiaXi yK 6aMX ()ojiho. H eree TaJiaac xspaB xapyyn ajieMenm M3A3TA3>k 6aiiBaji 0 Ayraap ftaftpjiajibir ty y h a au m n iax 6o jiom jk toh iom. (M accHBbiH 0 HHAeiccHHr JiumrjiacaH heap 6YTOHiffl x sp sn iss r 16 - p 6y jhhh h 4>aHJi rnaxax Huffman - h#h ajiropHTMaac xapat 6o jih o .) 11.7 3yparr y s y y ^ ^ h heap-HHr MaccHBaap ■JispxHibicsH 6aHAJibir 11.8 —p 3ypraap y3YYJIJ*33-

3ypar 11.7. Heap xoepTbiH m o a

arrayf/c] | 99 [ 77 | 55 [ 60 | 50 [ 11~[~44 | 22 | 55 | 30 [

3ypar 11.8 . Heap-MMr MaccHBaap unapxMMnax

k 1 2 3 4 5 6 7 8 9 10

175

Page 172: Algorithmiin shinjilgee

Eyjiaz 11

AYHA a M3CCHB 3p3M63JI3TA3X 60JIH0. in o rd e r ( ) 4>yHKI*HiiH KOAHr AOOp AaXHH TO^OpXOHJTJIOO.

te m p la te < c la s s Type>v o id B S T re e < T y p e > :: in o r d e r (N o d e * t p , T ype a [ ] ) {

s t a t i c i n t i = 0;.if(tp->l) inorder(tp->l, a);

a[i++] = tp->data;

df(tp->r) inorder(tp->r, a ) ;

k 11* ■. ■ t&m

3 h a toaop xoh jicoh in o r d e r ( ) <J>yHKij Hb apryMeHTaapaa a MaccHBur aBH, yjiMaap xsbjisx yhjtajihhh opoHA © rer^yynH H r a MaccHBT oJiroac 6a ta a .

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.

H e a p 3 p 3 M6 3 Ji3 JiTbiii a p ra

XoepTbiH Xa&JITMH MOAOOp 3p3M63JI3X aJITOpMTMblH H3T aAHJI h e a p 3P3m63ji3jith h h apra Hb xoep ajixaMTaH npo ijecc iom. 3xji33A ©rerA-namr h e a p T3X OrerA-UHHH 6yTU 3A XHH)K, Aapaa Hb h e a p - 3 3 C XaMTHHH HX 3JieMeHTHHr (xaMrHHH sxhhh sjieMeHTHHr) ssjdk AapaajiaH raprax 3aMaap ryftijsTrsAsr. 3 h 3 yhjiasji Hb 3P3m6st AapaajuiHH 3ap<maap xhhta3)k 6a t e a .

G ep eep x3Ji63Ji xaM rnim ©ha©p 3P3M63T3H (ty j ix y y p y iraTaH ) 3/ieMeHT 3X3JTJK rapax iom.

3p3M63;i3jrraHH 3H3 aprbir TaHJi6ap/iaxHH ©mho 6h a xoepTbiH m oahh h s t Tepeji 6ojiox heap-HHH 3oxhoh 6aiiryyjTajiT, a>KHJUiax 3ap iiHMTaH TaHHJiuax uiaapAJiaraTaH.

Heap xoepmbih Mod

Heap Hb xoep raH m oahh H3r Tepeji 6©r©©A a^HBaa 3aHTHJiaaHH y rra Hb 0©pHHHX©© xoep A3A (xyyx3fl) 3aHrHJiaaHH yrraac HManr hx 6an x HexuJiHHr xaHracaH ryn ijsA xoepraH moa iom. 3 h s H©xit©Ji ecoop y h a csh 3aHrHJiaaHA

174

Page 173: Algorithmiin shinjilgee

Eyjiae 11

H e a p - # x h h t a s x a j i H B a a y h j i a s j i H b y h a c s h 3 a H r H J i a a c H a a c H a B H x y p s x 3 a M W H

A a r y y r Y H U 3 T T 3 A 3 r y r o p y h j i a j i y Y ^ 3 # 3 a p u y y j i a x x y r a u a a H b m o a h w e H A p e e c

x a M a a p n a r . r y t a p A x o e p T b i H m o a h w o h a © P H b o H p o j m o o r o o p l o g N 6 aifamviT ( 9 — p 6 y j i t h h h 7 — p i r a H a p ) 6 h a m s a h s .

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

Page 174: Algorithmiin shinjilgee

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;

ij33pX cJ)yHKU,33p 11IHH3 3JICMCHT Opyyjiax 6ypr l i i - M H X3M3K33 H3r33p H3M3r#3X 60JIH0 . HHM33C heap #3X HHMT SJieMeHTHHH TOOr 6yi0y CYYJI'OIHH 3/ieMeHTHHH MaccHBT Saiipjiax GaHpjiajiLir Nei xyBfccar* to#opxohjdk ABHa. LLIhhs 3JieMeHTHHr heap-hhh Torcroji# opho y3C3H33p yr 6anpjiajm xapraji3ax sx 3aHrHJiaaHaac 3XJI3H yh#c3h 3aHrHJiaa xyptsjix 3aM #aryy 6aiip/iax 3JieMeHTyyaT3H xapBixyyjiax 6ojiho. 11.7 —p 3yparr aB4 y3C3H heap- A 88 T3C3H 3JieMeHTHHr opyyjiax npoiteccBir 11.9 —p 3yparr Y3yyjiji33. Heap- mmh hoxuoji ecoop yr 3aM #33p GaHpjrax 3;ieMeHTYYA ajiB xsahhh (yh#c3H umrHJiaaHaac 3XJI3H 6yypaxaap) 3p3M63Ji3r#c3H 6aw#ar yqnp opyyjiaH jp3M6sii3X aprBiH 3ap4MBir aum rjiax 6ojiho. Oop00p X3ji63.ii opyyjiaH fip3M63Ji3x apra# ajixaM hb ( i -1 ) —33p 00p4Jior##0r 6oji 3H# i/2 T3C3H ajixaMTanraap XHHr#3)K 6aHHa.

11.9 — p 3yparr Y3YYJTCH33p 88 rscsH ajieMeHT Hb 50 T3C3H yTraTaii laiirwjiaaHH 6apyyH #3# 3aHrMJiaa 6ojioh heap-# H3M3r#3>K 6 ataa. YH#C3H i.mrHJiaaHaac ihhhs sanrMJiaa xypxMx 3aM #33p 99, 77, 50, 88 rscsH

3ypar 11.9. Heap-A lumh3 aneMeHT (88) opyynax

177

Page 175: Algorithmiin shinjilgee

Eyji32 11

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.

template <c lass Type> bool Heap< Type>:: rmmax (Type& item) {

i f ( !Nel) {cout << "Heap is empty!" << endl; return fa ls e ;

}item * a rra y [1 ]; a rray [1] = a r r a y [N e l - - ] ; adjustH (1 ); return true;

}

Heap —HHH 3XHHH SJieMCHT 6yioy array [1] Hb XaMTHHH HX 3JieMeHT yHHp TYYHHH yrrbir item XVBbCarHHA OJirOOA, heap-HHH TercreJIHHH 3JICMeHTHiir sxhhh 6 aHpjiajiA iuhjixyyjkk Gaima. Nel xyBbcarq Hb heap A3X TercreJiHHH 3jieMeHTKHH Gawpjianbir toaopxohjdk 6 aiiAar. 3hs 4>Yhkuhhh AYHA heap- HHH X3M3K33 H3F33p 6 aracax 6a YJ1A35K 6y& 3JieMeHTYYA heap-HHH HOXiyiHHr xanraxryH y'ipaac 3JieMeHTYYAHHr adjustH () 4>yHKU33p AaxHH heap 6 ojiroH U3ri|3JTH3. ad ju stH ( ) $yHKmiftH apryMeHTaap yhacsh 3anrHJiaaHbi 6aHpjiajiwr (MaccHBbiH hhackc) AaMacyyjiax 6a epeHXHH toxhojiaojia AypbiH 3aHrHJiaaHbi 6aHpjiajiur jroyyjDK, 3eBxeH yr 3aHrHJiaaHaac yyccsH MOAbir heap oojifoho. 3h3 naHapwr 6ha Aapaa auiHrJiax 6ojiho. flapaax koaoop adjustH () 4>yHKU,HHT TOAOpXOHJIJIOO.

template <class Type> void Heap<Type>::adjustH (int k) {

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

Page 176: Algorithmiin shinjilgee

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

Page 177: Algorithmiin shinjilgee

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~ ~ )

heap, riratiax ( a [ i ] ) ;.1 « •-

heapSort ( ) (f)yHKU Hb 3arBap 4>yHKU33p TOAopxoifJiorAcoH yqnp HMapq TepJiHHH MaccHBbir AaMxyyjiaH sp3M63Ji3x 6ojiom>ktoh. 9h3 (jjyHKu; Hb heap YYcrsH, 3p3M63JT3J!THHr xoep AaBTajiTaap rYHii3Tr3^c 6aHHa. 3 xh h h iraBTajTaap 3p3M63Ji3r#3x MaccHBbiH 3JieMeHTYYAHHr heap-A xhhx33A, Aapaa^HHH AaBTaJiTaap heap-33c xaMrHHH hx 3JieMeHTHHr aBH MaccHBbiH TorcreJieec sxjish xh h x Gatina. Sjirssp AaBTajiTbiH yp AYHA aHXHbi op>K HpcsH MaccHB 6yp3H 3p3M63JI3rA3X AyycHa.

>Kh h i33Ji63JI a MaccHB-Hb 22, 55, 44, 30, 99, 11, 55, 60, 77, 50 T3C3H apBaH 3jreMeHTi3H T3B3JI 11.11 —p 3ypraap heap YYcr3X 3XHHH AaBTaJiTbir, 11.12 —

Page 178: Algorithmiin shinjilgee

3p3M63Ji3JimauH xynd3em3p apzyyd

p 3ypraap heap-33c xaMrHHH h x sJieMeHTHHr rapraH a MaccHBbir 3p3M63/T3x npou;eccyym>ir ajtxaM ajixMaap Y3YY^I33-

3ypar 11.11. Heap-wwr flaapaac aooiuoo HwrnanA 6awryyjiax

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

Page 179: Algorithmiin shinjilgee

3ypar 11.12. Heap awMrnaH 3P3m63hsx apra

template<class Type>void heapSort (Type a [ ] , const int n) {

int i ; -fo r ( i=n/2 ; i ; i — >

adjustH(a, i , n) ; fo r (i=n ; i>=2 ; i - - ) {

swap(a, 1 , i ) ; adjustH(a, 1, i - 1 ) ;

}}

/^33px (JjyHKH Hb M9H XOep flaBTajITaap 3p3M63J13JITHttr rYHU3TT3H3. SxilllH AaBTajiTaap a MaccHBbir heap 6o/iroH 30XH0H 6aiiryy;mar.

3h,h 6 ha ad justH () rHiuYYH 4>yHKUHiir epflHHH 3arBap (JjyHKH 6ojho* auiHrJiax 60JIH0 . YyHHH TyJIfl adjustH () 4>yHKHHHH K O flb ir T3p 4HI »H» auiHrJiax 6 a xapHH hsmsjit xoep apryMeHTbir ToaopxoftJiac « i » i uiaapAnaraTaft. 3xhhh apryMeHTaap 3p3M6sji3x MaccHBur, aapaa'iMUd apryMeHTaap heap 6 ojitox asa m ojhh yhacsh 3aHrHJiaar, CYY-’i'iMflfl apryMeHTaap heap-HHH xaMrHHH cyy-nhhhh 3aHrHJiaar flaMacyyjiHa.

182

Page 180: Algorithmiin shinjilgee

9p3M63ji3jiimuiH xyHOsemsp apzyyd

I l e t u p l a t e c c lass Type>

old a d j u s t H ( T y p e a r r a y [], int k, int Nel) {

. . // H33p toaopxohjicoh KOAbir uiyyA auiHrJiaHa.

■ xn.ip ererapiHHH Sytuhhh Hexu&Ji ecoop ajuiBaa heap flsx A3A moa 6yp heap Onii/iar. a d ju s tH ( ) <j)yHKHHHH TyCJiaMJKTaHraap heap-H H H yHACSH U nrunaam i opcoH hihhs sJieMeHTHfir 3oxhx 6anpjiajiA opyyjiax yMAJiHiir !VYii/6apyyH 43/1 moa 6ojiox xoep heap-Hiir hhhjiyy^sh heap yycrax yiiJiASJi

I I I*. X3JDK SOJIHO.

ho.ipSort () 4 > y H K H H H H h e a p yycrSX 3 X H H H AaBTaJIT H i ad j u s t H () 4 > y H K H H H H

I >n j ■jap'iMbir auinrjiaH m o a h u x a M r H H H 6ara a s a m o a o o c 3XJI3H h h h j i y Y ™

be .ip YYc r3X 3 a M a a p array MaccHBbir 6yX3JIA H b heap 60JITOH 3 0 X H 0 H 6aiiryyJl>K I (Vuima.

I iir . ip s o r t ( ) <})yHKHHHH AapaaiHHH AaBTaJiTbiH ajixaM 6yp TyyccsH h ea p -s s c

1-1MIHHH HXSJieMeHTHHX heap-HHH TercreJIHHH 3JieMeHTT3H COJIHX 6aHAJiaap

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

183

Page 181: Algorithmiin shinjilgee

Byii3z 11

opyyjiaH ©Hflep HaMaap Hb *arcaaxafl hhhjiyyji3X aprar aurarjiaaar. HHHJ}yyji3X apra Hb xoep )Ka rcaajihm sxhhh xoep xyyxAHiir xapbityyjDK HaMxaHbir Hb cohtoh hihhs xarcaajra opyyjrac, Aapaa Hb xoep xarcaaJiHH YJiflcsH cypantnbiH sxhhh xoep xyYXOTHr xapbuyyjiax 3aMaap xoep xarcaanbiH cyparMftbir jtyycTaji xapbuyyjrac Hsrrrejpr.

M 3JI33JT3JI 6ojioBcpyyjiax ojioh CHCTeM/i 3p3M63Ji3rflC3H erer&JiYYflTsii wain tom M3fl33JiJiHHH 6aa3Taft aacHJUiaflar. Mhm chctcm Hb hihhssp ueeH toohm xscsr 6yji3r ererxteJi hsmstosx Sojioh xacarflax SaiiHrbiH xeaejireeHTsii 6aH,nar. IIInHssp hsmswcsh sJieMeHTyyaHMii jiapaa hhht ererjyiHHr flaxHH 3p3M63Ji3X maapfljiaraTafl. 3hs toxhoji/jojiji ihhhssp H3M3ni3X ueeH erenumiir sxsjdk 3p3M63Ji33fl, aapaa Hb 3p3M63Ji3rAC3H tom ereraejrreft HHii/ryyjrax aprar aiBHnian Hsrrrsx Hb hjiyy toxhpomjktoh Saunar.

9h3 Gyjirssp 6ha xoepTHH 6yioy xoep 3p3M63ji3r;ic3H erer/uiHnr HHHKyynsx apra amnraax io m . XapHH ra/iaa/i spsMSsjisjrraHH ajiropHTMHH yeji xoepooc OJIOH 3p3M63JI3r/IC3H (JjaHilbir HHHJIYYJI3X api'blT aBI Y3H.3T.

Hapaax koamh xscrssp 3p3M6.3Ji3rjic3H xoep MaccHBbir HHHJiyyjisH rypaB flaxb 3p3M63JI3rflC3H M3CCHB YYCT3X aJiropHTMHT Y3yyJIJI33. BHflSHfl a [ 1 ] , ... , ■ afn) 6a b [ l ] ... , b [m] 3p3M63Ji3rflC3H xoep MaccHB erernceH T3B3JI rypaB Jiaxb c [ l ] , ..., c [ n+m] spsMSsjisrflcsH MaccHB yychs.

- = a; j = i ;a [n + l].== itemMAX; b [m + l] = itemMAX; f o r (k —1; k<=n+m; k++)

c [k ] = Ca[i.] < b [ j ] ) ? a [ i+ + ] : b [ j+ + 3 ;

Usapx nporpaMMHH a, b MaccMByynaa xapyyji sjieMeHT auinrjiajiaa. Miir3CH33p ajib Hsr MaccHBHH ereraeJi TypyyjDK jiyycaxaa flaBrajiTHH yjiacsH X3c jr 30BxeH Heree MaccHBbiH yjuicsH ererfljimir c MaccHBT rapraHa. 9h3 Koa iib n+m xapbuyyjiajir xhhhs. XspsB xapyyji sjicmcht auiHrjiax 6oJioM»nyft 6on i —hhh yrra n —ssc , j —hhh yrra m — 33c xsrpax scsxHiir flaBTajiTMH ajixaM 6ypT uiajirax xspsrrsH. flsspx koaoa xoep sJiraaTaii MaccHBbir HHHJiyyji3H rypaB aaxb hsmsjit MaccHBT rapraac SaiiHa. XapHH 3P3m63ji3jithhii yea 3eBxeH spsMGsjrarasx ratiu MaccHB, ryxaiiji6aji a MaccHB erenuier 6hji33. 9h3 toxhojiaojih 6ha a[n] MaccHBbir a [0 ], , a[m] 6aa[m+l], ... , afn-1] r3C3H XOep HJIfaaTait M3CCHB M3T33P Y33H HHHJiyyJDK 6ojiho. Hhhjiyy^sjithhh yp jiyHr xaarajiax (a MaccHBTaft auoui n X3MX33T3ii) H3M3JIT MaccHB jiUaapflJiaraTait. HHfiJiyyjisjiTHftr hsmsjit MaccHB amnrJiaxryHrssp 3p3 .w63Ji3ra3x MaccHBT Hb ryHUSTre;* 6ojiox 6ojk3bm Tspssp TenerT3Hr33c rajiHa yp aurar MyyraH, xyrauaa 3apcaH aJiropHTM 6oaflor. Hmhjiyyji3X xoep ereroriHHH X3MJK33 n tsbsji HRHJiyynsjiTssp 2n yprrati

184

Page 182: Algorithmiin shinjilgee

9p3M63Ji3JimuuH xyndaemap apeyyd

3p3M63Ji3rflC3HererflJiHftrO(2N) = 0(N) ajixaMarapraHaBHa. Tsras/irycJiax

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 .

3h,h 6hw fl33px HHHJiyyjTsx aprwr amnraaH 3psm63jisjit xspxsH XHHXHHr aB4 Y33X 6ojiho. HaraHT HHHJryYrox aprar M3flC3H33p TyyHHHr auiHraaH 3p3M03^3OT XHHX Hb TeBeiTyH IOM. YyHHH TyJTJS, 3p3M6sJI3X MaCCHBHH ererflJiHiir xoep xscsrr (peicypcssp) xyBaaH spsMSsjicHHii aapaa 3p3M63Ji3r^c3H xoep xscrss 6yuaaH hhhuyy-’ihs. Gepeep xsjiSsji xyBaarflcaH xscsr SypHHr spsMSaroxfl&s (xscsr 6yphht) moh ziaxiiH xoep xscsrr xyBaaH 3p3M63^33A, Aapaa Ht HHH;iyyji3x iom. Xoep xscsrr xyBaax shs npoueccbir 6hhhhh eMHe yjcsh xypaaH 3P3m63j13jith#h ajiropHiMbiH amm (xscsmsh- H3nr3x apraap) peKypcT xoep flyynajrrbiH TycjiaMacraiiraap xhhx Sojiho.

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;

)

mergeSort C) cjsyHKUHHH apryMeHTaap 3P3M6SJISTCISX a MaCCHB 6o^0H a MaccHBbir X3M3K33r naMxyynHa. 3hs 4>ynKri Hb a MaccHBbiH xsmxsstsh H)KHJI X3MJK33T3H H3M3JIT M3CCHB yycrsH divconMerge () <J>yHKHHHr /iyyfla:* 6amia. divconMerge () fJ)yHKH a MaccHBbir xscsrJisH-HsrTrsx apraap fl3A xscryyro/i xaracJiaH xyBaax, xyBaaracaH xscsr 6ypHHr HHWiyyjrex aprbiH ryc^aMXTaitraap spsmSsjisx 6ojiho. /Japaax 4>yHKU33p divconMerge!) 4>yHKUHHH KOflHr Y3YY™33-

template <class Type>void divconMerge(Type a [ ] , Type.tmp[], int high, int low =» 0) {

i f (low < high) {int mid = (low + high)/2 ; divconMerge(a, tmp, mid, low); divconMerge(a, tmp, high, mid + 1); merge(a, tmp, low, mid, high);

>I

185

Page 183: Algorithmiin shinjilgee

3p3M63.i3JimuuH xyudaemap apayyd

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|

1:1 1 M . 1 1 1 |a|e|e|l|m|p|x||a |a |e |e |g 1 |l|m|n|o|p|r|s|t|x|

3ypar 11.13. PeKypcT HMMnYynaH 3p3M6ari3x apra

3 h a h h h j iy y j is h 3 p 3 M 6 s jj3 x aJiropHTM Bi h aacHJiJiax x y ra u a a r c o H H p x o u r o o e .

X o e p R3H x s c r a i i r HHHJIYYJISX merge ( ) (JiyHKllHHH 3XHMH X o e p AaBTaJITMHH

H H iia 6 3 p 6 0 ^ 0 H C Y Y^ IH H H AaB Ta^T H t HHHT e re r flA H H H X3M>K33 N = high -

low + 1 TorrM O Ji T o o r o o p XHHm ;3H3. © e p e e p x3ji63/i n e re rzu iH H H xyBUfl

O (N ) x y r a u a a im a x n ju ia ,n a r . m e r g e s o r t o (JjyHKU Hb x s c s r j iS H - H s r r r s x

aJiropHTMblH 3apH M aap aJKHJIJiaX y ip a a c merge ( ) 4>yHKU H b mergeSort { )

(t>yHKU33C l o g s y a a a a y y n a ra a H a . 3 h ^ 3 3 c h h h j iy y j ,3 h s p s m S s jis x a p ra (heap

3 P 3 m 6 3 ji3 jith h h a p r t iH a/ow i) n sJ ieM eH TM iir 3p3M 63Ji3x ji33 o i ip o jm o o r o o p

n 1 o gw x y ra u a a 3 a p u yy jm a r. T s b h s h s aJiropHTM blH a y ra rz ia jiT a ii Tan Hb h s m s jit

n X3MJK33T3H 3aH r (r y c j ia x m b c c h b t ) m a a p n a a r .

Page 184: Algorithmiin shinjilgee

d ivconM erge ( ) 4)yHKUHHH apryMeHTaap 3p3M63JI3rfl3X a MaccHB, Tycjiax tmp MaccHB 60/1 oh xarac/iaH xyBaarflax m vxhhh ass# 6a n oon xaaraapur (HH/ieKc) xiaMDKyyjina. XaMraftH aHXHBi ayyaajjTaap xaracjiaH xyBaaraax M y * Hb a MaccHB 6yx^33p33 6aftx ynap a,33 )l XH3raap hb n - i (C + + xsjihhh n x:)M>K33T3M MaccHBbiH axjiax HHaeKc Hb n - i 6aH0.ar), noon, x joraap hi> 0 SaKHa. O p * iipc3H MyJKHHr xacarJiaH xyBaax, xyiiaarflcaH x scsr 6ypHHr peKypcbiH TycjiaM>KTaHraap uaam fl3fl X3C3rr xyBaamaxryH S q jito ji xaracjiaH xvBaaHa. © ep eep x3ji63ji x scsr 6yp Hb r o r 3/teMeHT aryyrcax ye# xyBaajrm r 30rC00JK, HHHJIYYJI3X nponecc 3X3JIH3. H H M YYJI3JI™ i*r merge ( ) <J)yHKHHHH TycJiaMscraHraap ry tasT rsH s . Jiapaax (JjyHKUHHH Ko^oop 3p3M63Ji3r#c3H xoep xscncftr HHiuiYYJISX merge () 4>yHKHHHH KOflbir Y3YY-®133-

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 - - ] ;}

merge () (f)yHKiiHHH apryMeHTaap 3p3M63Ji3rfl3X 6a Tycjiax MaccHBaac raUHa

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

6aHpJiyyiicaH. © e p e e p xsjiObji x o e p M y * Tycjiax M a c c H B T x a M r w t a h x

3JieMeHTYYfl33p 3anraH opuiHHo. xoep Macc H B 6He 6 m a 3 3 xapHJiuaH

xapyyji 3/ieMeHTHiin YYPmitr ryftupTreHS. Tycjiax MaccHBaac xoep MyacHiir

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

Page 185: Algorithmiin shinjilgee

3p3M63ji3jimuun xyndrjemap apayyd

OaiiHa. F a B i 3H3 “ A o o p o o c -A a a m ” p e K y p c ry ii ap ra Hb p e icyp cx naiiTpyynaxrraac ajiraaxan ax iiaaaxh ir oh lu ioh xajiax e c to ii. }K m iiaa ji6aa jpaM 6ajiarflax ©rerAJiHHH to o 95 6aiix yea xaM raiiH cyyjin iiH HiitiayyjiaJiTaap (>4 6a 3 J ra csH xa M x a a T a fi A3A x a c ry y flH iir HHiiJiyyjiax 6o ji peK ypcT naBTpyyjiaJiTHHH cyy jih h hh HHiuiYYJiajrraap 47 6a 48 racan xaM xaara it xacryyA HHitnyya3rfl3Ha.

3p3M63JI3JITHHH aJITOpHTMMH HJKIUIJiaX XyraiUIHIILl # 00,11 xHsraap

I)ha cyyjiHHH xoep 6ynraap 3paM6aaajrrHHH o<n2) ajiropHTMaac O(NlogN)

xypraji caiixpyyjicaH aaropuxMyyABir cyflaixcaH 6naaa. Tsreaa yyHaac M/iyy

caiixpyyjiax 6ojiomxtoh joy rac3H acyyjrr rapHa. 3hs acyyaxaa 6oaoMxryti

l acaH xapnynTerexHHrAapaax xaMa6apaac xapx 6ojiho. Gspeep xaaGsa shs

xacarr 6ha (xoep aaeMeux xapBHyyaax) xoepTBiH xapbnyyaaaxaap xminiax

apaM63Ji3JiTHHH apra Q ( n l o g n ) xaptuyyaaax xhhx ecToii rsATHHr xapyyjiax

iom. Byx aJiropHTMHH xyiiLA tyyhhh xapbuyyaaaxbiH xoohh aooa xaaraapur

xoAopxoiiaoH 6aTJiax hb yH3X33p TSBerraii iom. XapHH 6ha HMap Har

iuiropHTMA toxhpox 3arBap aoxiiorooA, 3Ha 3arBapT ToxHpox HMap «*

iUiropHTMMH axuaaax xyrauaa Hb aooa xH3raapaac hx 6yioy TaHuyy rsflraMr

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

3opH/in>iH moahh YHAC3H 3aHrHJiaaHaac HaBH xypax xaMrHiin ypT 3aM 6yioy

moahh ryu d —asp xoAopxowao iao h o. 11.15 —p 3ypraap n=3 aaeMeimiiir

3p3M6aaax 3opiuirHH moa T-niir y3yyaaaa. 3hs moahh raAaaA 3aHrnaaaHu

too hb n ! = 3 ! = 6, moahh ryH hb (xapBHyyjiajmaH too 6yioy aotooa

3anraaaaHH xyBBA) d=3 6aHHa.

3paM 6aaaaT0iiH aaropHTM Hr xoAopxoHaoxHM ap 1 3opnarbiH moahbi ©hasp

(ryH) Q ( n l o 0 j ) 6aHHa.

189

Page 186: Algorithmiin shinjilgee

Byj&z 11

0MH6X Syjiryynssc 6Hfl anHBaa peicypcT cJiyHKLmftr peKypcryft xyBHJi6apaap eepHHJDK H3BTpYY®CH33P 0reraeJW an raarafi flapaajuiaap xaimax 6ojiom jkto« Saiwraftr M3#c3h 6ujib3. HHitnyyjtsH 3p3M63Ji3x ajiropHTM hi> xscs itish - H3rn 3 x 3apHMaap aXMJiJlajiar. XapHH peicypc autHrjiaaryfi xyBHJi6apuH yea ereraejifl eep ,aapaaJIJTaaP xaHflaH eep xscryyziHHr yycrsH HHttnyyaa3r Gepeep xsjiSsji 3XJI33A M3cchbmh sJieMeHTyyflHHr H3 r H srssp Hb # 3# xscar S ootoh HHiuryyjicH93P xoep xoepoopoo spsMSsjisrflcsH aapaa^uiyya yycflsr. YyHHH#apaa xoep aneM etrrrsft 43# xscryyflH ftr HHirjiyyjicHssp 4 xsm xsstsh R3& xscsr, aapaa hi. /(epeBflepBeep Hb HHtoyyjicHssp 8 xsm xsstsh xscryyn yycrex 6aiw iaap 3p9M63.rc3.JrrH ftr xHiypr.

11.14 —p 3ypraap 11-13 —p 3yparr aBcan jKHiH33r peKypcryii apraap xspxsn 3p3M63fl3XHttr \3YYiin33-

f70sToTR]Tli |n 1g [e |x |a |m|p TlTe1m

B H

f s m m u 1

f A [A | E j E IG 1! | l | M [ N [ 0 | P | r | s [ T | x [

3ypar 11.14. PeKypcryw hmmjiyY ^ h apSMCsmx apra

XsflHHrssp 3H3 xoep aJiropHTMbiH erer^ejw xaHflax aapaarrai eep 6 ojiob 'i

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

Page 187: Algorithmiin shinjilgee

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

AaBTarAaxrytt Taji6apbir toaopxohjdk 6ojiho. 3 h 3 yeA xaiijnbir TyJixyyp 6ojioh

(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.

Page 188: Algorithmiin shinjilgee

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.

0H3 Hb 30BX0H xapbuyyjiajiT amnrjiaH ryftH3Tr3A3r 3p3M63Ji3JiTMfln aJiropHTMHH xyBBA apnrflax iom. XspsB 3P3m63ii3Jithhh apra Hb xapbuyynaji 1 auiHraaAaiTYH 6oji TyyHHii a*HJUiax xyrauaa hb Q (n logn ) —aac MaraAryH xypaaH Sait* 6ojiho. HAm ajiropHTM Hb 3p3M63Ji3jrmHr xapBiiyyjiajrraap 6hih, xapHH TYJixYYPHftH OHHJior imnocHHr amnrjiaH HMap H3r MaTeMaTH * yftAAH33p r¥HH3TT3A3r. JKhiii33ji63ji 10 - p 6yiir33p Y3C3H Tapxajmar toojio* apraap 3p3M63Ji3x anropHTM Hb TyjKyypHte AaBTajirar toojiox 3ap>iMa;i|- 3p3M63H3JiTHHr O(n) xyrauaaHA rytaOTT3A3r.

Page 189: Algorithmiin shinjilgee

Bfjm 12

IIIyraMaH xafijrr Syioy /japaajiau xafix apra

XaHJiTUH xaMrHHH 3HrHHH apra 6oji luyeaMan xawimbiH aped iom. 3hs apra Hb ererfljmiiH sxjisjissc #apaajiaH xaHAaac xaHJiTHr xhhast. IIIyraMaH xafijiTbiH ajiropHTM# sHniHH erer/ynraH 6yn p [te Hsr 6ojiox MaccHB aumrjiaH H3BTPYYJUI33- MX3HX XSpSDISSHA 0rer#0JI Hb TYJIXYYP 60JI0H M3#33JUIHHr aryyjiax 6iroi3r33c TorrAor SojioBq sha 6m# xflji6ap*uiax sopHJiroop 3obxoh tyjixyyp oror^oji aryyjiax MaccHB aumfjiax 6ojiho. MaccHBT uihhs ototaoji opyyjiax#aa MaccHBT opcoH ororAflHHH Tercrejm hsm^k opyyjiax 6a xapHH xaHJiTbir MaccHBHH 3JieMeHTYYA33c AapaaJiaH xaiiHa. flapaax xoep HH3HH (peKypcT 6a AaBTajrraT) s e q S e a rc h o <j)yHKij;3sp HiyraMaH xaHJiTHH ajiropHTMHr H3BTpYY^33-

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.

IIIyraMaH xaHJiTHH apra Hb xoji6ooct acarcaajrraac xaHJiT Xmhx yhacsh apra 6ojdk erae. Y hhp Hb acarcaajrrbiH 3JieMeHTYYflPfl 30Bxoh sxjisjissc xoji6oochh

192

Page 190: Algorithmiin shinjilgee

XaiuunbiH meciun apzyyd

TycjiaMXTanraap 3©bx0H AapaanaH xaHAax 6 ojiom>ktoh. ^apaax AaxMH TOflOpXOiUIOrflCOH search () (fryHKUYYAHHr 6 —P 6y/13rT TOAOpXOHJICOH LinkedList KJiaccHH rHIUYYH cf>yHKU33p H3M)K OHiO.

Node *L inkedL ist:: search(Data d) { se tF ir s t ( ) ;while (curr && (curr->eleinent ! = d ) ) n ex t (); return curr;

} <Node *LinkedList: : search(Node *p, Data d) {

i f (p ) {i f (p->element d) return p; e lse search(p->next, d ) ;

Jelse return p;

}

^33px xoep (JjyHKitHHH 3XHHH 4>yHKH, Hb xaHJiTa# AaBTajrr aurarjiacaH 6oji yAaax <|>yHKU Hb petcypc amnrjiaH Aapaa4MHH 3JieMemYYA3A xyp4 6aHHa. XaiicaH 3JieMeHT acarcaajrraac ojiaboji yr 3JieMeHTMHr aryyjiax 3aHTHJiaaHbi xaanmr 6yuaa^c Sataa. OjiAooryH toxhojiaojia n u ll yrra 6yu;ax 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.

AjiHBaa 6oaht xspsrjissHHH xyBbA AaH raHU xawjrraap 6yc, xapHH Tyxato xaHJiTXHHX GynxHHr Ganryyjiax, uiHH33p 3JieMeHT hsmsx, ycrrax 33psr Gyxhh ji yftjiAJiYYAHftH xaMTaap TyxaiiH ajiropHTMbiH aacHJUiax xyrauaa roAopxofijiorAAor. Xsp3B ererAAHiir HMap H3r 6aftAJiaap usrujisH 3P3m63ji6sa xaHJiT xypAcax 6ojiom xtoh. vKhiiissjiSsji xaMrHHH hx auinraarAAar (xaiurr xaMrHHH ojioh yAaa xHiirAAsr) sJieMeHTMiir 6ytuhhh 3X3HA 6aHpjryyjiaH, yAaax xspsrussT 3JieMeHTHHr xoepAyraap 6awpjiaJiA rsx M3T4HJI3H 3P3m63jdk 6ojiho. XapHH ajib 3JieMeHT Hb xspxsH auiHrjiarAaxbir M3A3xryH 3CB3JI 3JieMeHTYYA caHaMcapryH Tapxajrraap auinrjiarAAar 6oji hhm MaarHHH i*3ri*Ji3Jrr xhhx Sojiomjktyh iom. XapHH ererAAHHr tyjixyypmhh yTraap 3p3M63JiC3H toxhojiaojia 3apHM xaHJiTbiH aJiropHTMaap xaftjiTwrxypAacraxc 6ojiho. 3 h s toxhojiaojia HiHH33p 3JieMeHT opyynax yttJIA3JI Hb 3p3M63JI3rAC3H 6aHAJIbir 3BA3XTYHr33p XHHX 3CB3JI LUHH3 3JieMeHT opyyjicHU Aapaa 6aimra 3p3M63Ji3JiT xhidk 6anxbir maapAAar. f3B4 TyxaiiH X3psrA33HA xaitiiT Hb Mam xoBop XHHTAAsr 6oji 3JieMeHT opyyjiax yhjiasjia

Page 191: Algorithmiin shinjilgee

XaiuimuH bhbuuh apeyyd

if (x = = a[mid]) r e t u r n mid;

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 [

i n m m b b j; i m3ypar12.1. XoepTbiH xawrr

XapHH 12.2 —p 3ypraap 95 3JieMeHTHHH xyBbA HMapi sJieMeHTHiir xawx xaftjiT Aojiooh xapbuyyjiairraac xsTpsxryft Bojioxmi' xapyyjinaa.

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 .

XoepTbiH xaioiTbiH ajiropHTMHr amnraaxaA ererAOJi 3p3M63Ji3rAC3H 6aMx ecToit. XspsB IHHH3 ererAQJi 6aftnra ojihoop H3M3rA3X 6aitAar 6oji opyynax 6o jioh ©rerAJiHflr 3 p3M63Ji3x yh jia jih h t aHxaapax xspsrrsH . X oep ra H xattjiTMH anropHTM Hb ererAJiHHH u ih jix h jit (opyyjiax, ycrrax ) 6araiait 3p3M63fl3TAC3H (3p3M63/I3JITMHT H3r yAaa XHHX) ererAJiHHH xyBbA auiHDiax

iq c :

Page 192: Algorithmiin shinjilgee

Byjiae 12

(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 , ) (

int mid, low ** 0, h igh - n;

w hile (low <= high) (

raid = (low + high)/2;

if (x = = a[mid]) return mid;

if (x > a[mid]) l ow ■ m i d + 1;

else h i g h ■= m i d - 1;

)return -1;

1

3 h s 4>yHKUHftH apryMenraap xaftjiT xhhx mbcchb, MaccHBHH xsM xsa 6ojioh xaftx 3JieMeHTHftr AaMxyyaHa. 3xHHft anxMaap MaccHBbir 6yxsjia hb h s t M y* M3T33P aBH 6aftpJiaJIUH XyBbA T3T flyHfl OpiUHX 3JieMeHTHftr OJIHO. IoJIblH 3H3 3JieMeHT33p MaccHBxoep xscsrTxaraoiaH xyBaarjax 6a xaftx sjieMeim iftr rojiMH 3JieMeHTT3H xapbiiyyjicHaap anb MyxtHA xaftjrrwr Ypr3Ji>KJiyYJi3XHfl[ TOflopxoftnwor. © epeep x3ji63ji xaftx s jieM em to jih h sjieMeHTreft tshuyy 6oji xaftjrr aMsaurrraft 6ojdk x a t o u r 3otcooho. XspaB rojibiH sjieMenreac 6ara 6oji 3yyH xaracT, hx 6oji 6apyyH xaracT xaftjrrur mqh shs 3apHMaa aurarJiaH yprejraoryYJiHa. C++ xaJiHHft MaccHBHH HHffeKC 0 —ooc sxjisx y liHp a [n] MaccHBbiH xsm xsst AaMxyyjiaxAaa n-i AaMxyyjma. OyHKH Hb xaftjrr aMXHJiTTaft 6ojiox toxh o jiao jia xaftcaH sjieMeHTHftH MaccHBT SaftpJtax HHHeKcnftr, xaftjrr aMXHjrrrYft toxho jiaojia —1 y n w Tyc Tyc 6yiiaaHa.

3h3 (JjyHKUHftr xypAan 3p3M63Ji3JrniftH apraA aumraacaH xscsnisH -H srrrjx apruH aAHJiaap peKypc auiHrjiaH HSBTpyyjr*; 6ojiho.

te m p l a t e < c l a s s T ype>

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 high, int low=0) I

i f (low > high) return -1;

else (

int m i d = (low + high)/2;

194

Page 193: Algorithmiin shinjilgee

XaUjimbiH m m m apevyd

Hb 4 £3X xaptiiyyjianTaap m 3JieMeHT oji/io >k SaiiHa.

XoepTbiH xaiijiTbir caftxpyyjiax hst 6ojiom3kht apra 6o/i xaiix 3JieMeHTHHH

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.

)Khui33ji63ji yracHH JiaBJiax homooc B ycrssp sxsaesH xyhhh H3p xaiix 6oji

6ha rnyya h o m h h sxhh h xsasH xyyacaac axaaaar 6a xapnH 3 ycraap 3 xaax

TOXHoaaoa# homlih TercreJi optoooc xairac axajwar. 3ira xaiiaraH aprar

3aecpbin xawimbiH apza r s x Hsp/isflsr.

XoepTbiH xaitablH binarySearch () aJiropHTMfl xailJIT XHHX (3aBcpblH rojIUH

3JieMeHT)6aHpjia^HrToflopxoHjr»c6aHcaHinid=(iow + high)/2 naspxniiasa

Hb

m i d = l o w + —(high - low)2

TOMieoHooc yyccsH. 3 h 3 Hb 3aBcpbiH ayHaaac yrrbir ojdk 3aBcpbiH aoo#

x«3raapfl33p hsm x 6aiiHa. Taras;! 3aBcpuH xaftaTMH apra Hb 3H3 TOMi>eoHbi

1/2 —HHT (x - a [low]) / (a [high] - a [low]) -aap cojlbflor. 9HA33C

(x - a [low] ) , .mid= low + --------------(nigh - lowl

(a[high] - a[low])

6ojiho. B ep eep x3Ji6aa xaiix saeMem'HiiH yrra 6a 3aBcpbiH Tercie/iHHH 3JieMeHTyYHHHH yrryynHH xapbuaaHaac xataTbir 3aBcpbiH xaaHaac sxfisxHiir •roaopxoHJiac 6aiina. 3 h s Toxuoaaojia (tyjixyyp ) ereraea Hb tooh yrra 6ahx maapaaaraxaiiraac raana aaira TapxcaH 6aftx xsparreii. ^33px roM’beoHU xyBaapbT Saitraa anraBap Tarssc suiraaTaii 6anx ecToii y 'lnp yr TOMteor auinrjiax roxHoaaoaa e re raea Hb Haraaxaii 3JieMeHTYYA33c to itco h 6aiix maapaaaraTaii.

3aBcpHH xaftjiTHH apra Hb xaiiiiT aMXHarraii 6a aMXHCTrYH 6aiix aab h ToxHOJiflOJia lo g io g u + i —33c xsTpsxryii xapbiiyyaaax xwiiaar.

XoepTbiH Mofloop xaiix

3 H 3 6y>ir33p Y3C3H binarySearch () XoepTbiH xaiijiTbiH cJjyHKU Hb SJieMeHTHHr

MaccHBaac xaracaaH xyBaax apraap xaflac 6aiicaH 6a xaiiJiTaap xhhiasx xapbiiyyjiaJiTyyaHH aapaajuibir xoepTbiH M o a o o p aYPCJisH Y3YYj]C3h 6na33.

T 3ra3.fi 3 H 3 xacsrT 6 H a x o e p r a H xaiijiTbiH M o a o o c aaeineHT xaiix apraTaii

197

Page 194: Algorithmiin shinjilgee

E\me 12

3ypar 12.2. Hx x s m w s s t s m ererflnnPtH xyBbfl xnfirflsx xoepTbiH xaPi/iT

Hb HJ1YY TOXHpOMJKTOH.

XoepTbiH xaiiJiTMH xapbuyyjianTwr xoepTHH Moaoop /iypcjish y3YY-fi* 6o;iho. 12.3 —p jypraap 12.)' 3yparT aBcaH x h lu s s ererw iHHH xyBbfl xoepTHH xaiiflTHH xapbuyyjiarrrbiH MOflbir y3YYJIJI33-

3ypar 12.3. XoepTbiH xafimbiH xapbijyynanTbir xapyyncaH m oa

m 3JieMeHTHHr xafixnaa sxjissa H 3JieMeHTT3H xapbuyyjiaH, hx ynpaac h -

niiH 6apyyH A3 A moa pyy ihhjokhh n -T3m. Aapaa l ts h xapbuyyjiaH. 3U3c t

1%

Page 195: Algorithmiin shinjilgee

Eyjiaa 12

TamumaHa. 11 —p 6yjir33p 6ha xoepTHH xaiuiTHH Mo^tir xojiSooc aumraaH AHnaMHKaap 6aftryyjiax apraTatt ajib xsahhh TaHHJiucaH 6hji33. 11 —p 6yji3 it xoepraH xaitiiTbiH moaooc 3JieMeHT xattx cJ)yHKi(HHr oh ijaoh TOAopxoitfloorYH i YH3H xspsrTss moaoha 3JieMeHT opyyjiax 6ojioh ycrrax yh jiam Hb xaiurrHH 3apHMaap XHttnmsr. Hhm ssc 6 ha xaiijiT xhhx (jjyHKHHHH ajiropHTMbir xjui6apxaH oiuiroH hsbtpyyJ13* 6o jio m *to h iom.

3 ha xoepxbiH xaftjrrbiH moahh oHUAorur sprsH caHauraaa. XoeprbiH moahh 3aHraJiaa 6yp (ererAJiHHr) Tyjixyyp yrrbir xaArajiax 6a TyxaiiH 3aHrHJiaaHH 3JieMeHTHHH yrraac 6ara sjieMeHTyyA syyh A3A moaoha, hx aneMemYYA 6apyyH asa moaoha Hb 6aiipjiaAar. M hmssc xaHHTur moahh yhacsh 3aHrHJiaaHaac sxjish xapbnyyjix 6ara toxhojiaojia 3yyH A3A moa p y y , hx toxhojiaojia 6apyyH A3A moa pyy ohhx peicypcT yftAflAsap rywHSTreAsr. XoepTHH xaiurrHH moaooc xaiijiT xnttx 4>yHKHHifr AaBTairrraH 6ojioh peicypcT XOepHH3HH search () <J)yHKH33p TOAOpXoftjUIOO. 3aT33P search () (})yHKHYYA Hb 11 —P 6YJT3IT TOAOpXOftjICOH BSTree KJiaccHH rHIHYYH (J)yHKHYYA K)M.

template <class Type>bool BSTree<Type>:: search(Type d ) (

Node *tp = root; while(tp) {

i f (d = tp->data) return true; else i f (d < tp->data) tp = tp -> l; else tp = tp->r;

)return fa lse ;

)template cclass Type>bool BSTree<Type>::search(Node *tp, Type d) {

i f ( ! t p ) return fa lse ; else i f ( d == tp->data) return true; else i f ( d < tp->data) sea rch (tp -> l,d ); else search (tp ->r,d );

)

SArssp 4)yHKjjHHH 6yi[aax yrra Hb YH3H/xyAaJi recsH JioriiK yrryyA 6aflx 6a yHinHri eepHHH xspsrjissHHft maapAJiaraA ToxnpyyjiaH eepiHJix 6ojiho. PeKypcT search () cjjyHKUHHH apryMeHTaap moahh yhacsh 3aHTHJiaa 6a xaiix sjieMeHTHHr AaMacyyjraa. M oahh yhacsh 3aHmJiaar AaMacyyjiaxAaa BSTree KJiaccHH getroot () (JjyHKHMilH TyCJiaMXTafiraap rYHH3TT3H3. 5KnUI33Jl63JI 6yx3Ji tooh xoepTHH moaooc 10 T3C3H 3JieMeHTHHr xaiixAaa

BSTree<int> tree;

tree .search (tree.getroott), 10)

198

Page 196: Algorithmiin shinjilgee

Xawimun shzuuh apeyyd

rexflyyzm 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

Jlsspx syprHHH sxhhh Tarnyy moa Hb ererAJiHflr 1, 2, 3, 4, 5, 6, 7 recsH Aapaarmaap opyyjiaxaA yyc3x 6oji tyhhst moa Hb 4, 2, 6, 3, 7, 1, 5 tscsh Aapaajuiaap opyyjiaxaA yycH3. ryituSA moaoha xhMx xaiiJiT Hb 3 xapbuyyjianrraac xsTpsxrynrssp umitAsrASHS.

H hmssc moa amarJiaH xaiimr xhhx yeA MOAHr anb 6ojiox rynusT moaoha AexYYJi* 30XH0H 6anryyji6an HJiyy yp auiHiraH 6aftHa. flapaanniiH 6YJir33p 6ha 3H3 TyxaiiH ASflrspsHrytt Y3sx 6ojiho.

199

Page 197: Algorithmiin shinjilgee

B y J ia r 13

T 3 H U B 3 p T M 0 ; 3

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

Page 198: Algorithmiin shinjilgee

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

Page 199: Algorithmiin shinjilgee

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

TOflOpXOHJICOH.

template cclass Type>

class AVLtree {

struct Node {

Type data;

int bf;

Node *1, *r;

) ;Node *root;

void rrRotate(Node* S p ) ;

void llRotate(Node* & p ) ;

public:

A V L t r e e ():r o o t ( N U L L ) ()

Node *&getroot() { return root; }

int insert(Node* Sp, Type x ) I

int delNode(Node* sp, Type x ) ;

void print(Node *p, int ws = 0);

203

Page 200: Algorithmiin shinjilgee

Eyjiai 13

+5 +9

3 y p a r 1 3 . 1 . flaH 6a flasxap 3prYYn3nTYYA

TaBLac erceH. IIIhhs ajieMeiix opyy/icHH flapaa avl moa TSHUBspryii 6o/iox

TOXHOJTAOJIA ±2 T 3 H U B 3 P H H H K03<f)<t)HHHeHT 6yxnfi 3aHrHJiaa YYc&3T- Mhm

3aHrifJiaa Hb TyxaiiH m oahh X3ji63p 6ojioh uihhs sjieMeirrasc xaMaapn xsa h yycn 6ojiho. TarBSJi nsr hihhs SAeMeHT opyyjicHH flapaa moaoha xhhhssh

3prYYJi3JiT xhhx maapA/taraTait B3 tscsh acyyAT rapli Hpus.

IUhhs 3/ieMeHT opyyjicHH Aapaa avl moa T3HUB3pryH 6ojiox toxhojiaoaji 36BX0H H3r ash scbsji Har AaBxap spryyjisjiTssp T3HHB3pT moa 6o;iroAor. 9pryYJI3JITHHr 1HHH3 OPCOH 3JteMeHT3A XaMTHHH ottp OpniHX +2 T3HHB3pHftH K03iJ)(j)HHHeHT 6yxnft (©Bor) 3aHniAaaHH xyBBA ryiinsTreAsr.13.2 —p 3ypraap l l spryyjisjrraHr avl m oahh epoHXHft to x h o jia jih h xyBbA Y3yyjui33. S h s 3yparr Y3yyjiC3H avl m oah h yh acsh 3aHrajiaar xaMrHHH oflp ±2 T3HUB3pHttH K03(J)c{)HLI,MeHrr3H 3aHrHAaa T33K y333C 60JIH0.

3 y p a r 1 3 .2 . LL flaH apryynanT

13.3 —p 3ypraap l r Aasxap spryyjisjiTHHr y3yyM 33 . IIIhh s ajieMeHT hb b 3aHrnjiaaHBi 6apyyH asa moaoha opcHoop moa T3HHB3pryft 6o a x 6aiiHa.

202

Page 201: Algorithmiin shinjilgee

Mode 6YTU33P AVL MOAHbl 3anrwjiaa Toflopxoftuoraox 6a xoepTbiH XaHJITblH MoaHM aUKJi 6ojiobh iaHT HJiaaHbi T3HUB3pHHH KoscJxjjHUJieHT xaArarcax H3M3J1T Tan6apTaH 6atma. 3hs Tan6aptir bf rauiYYH erer/uieep, avl moaohaXHHTO3X YHJIiUIYyAHHI AVLtree KJiaCCblH THUIYYH (})yHKH33p TOAOpxOHJTJIOO.AnHBaa spryYJisx yiiJiASJi Hb 3JieMeHT opyyjiax scbsji ycTrax yen Ayyaaraax VHHpllRotate0 6a rrRotate0 (JjyHKUYYAHHrKJiaccMHprivaterHUIYYH33p 3apJiacaH. llRotate (I 6a rrRotate {) (fjyHKHYYAHHH KOflbir AOOp Y3YY-rIJI33-

template <class Type>void AVLtree<Type>: : rrRotate(Node* &p) {

Node *.q = p;P " P - >r ; | tq ->n = p -> l; p -» lq->bf •. ■i f (p->bf > 0 ) q*-:>bf -t p->bf; p ->h£- - ;i f (q->bf < 0 ) p->bf += q->bf;

}

template <elass Type>void AVLtree<Type>: : llRotate(Node* &p) {

M&de * q = p ;

Pga. P: >1; q - >1 = p- >r ; p->r = q; q- >bf-t-+ ;i f (p->bf < 0 ) q->bf -= p->bf^ ’’ p*>bf++;i f (q->bf > 0) p->bf += q->bf;

}

E>ha 0MH6 Hb 3pryYJi3JiTHHH (a 3 h xoep , AaBxap x o e p ) h h h t AepB eH aH3HH

6ojxom>k 6ahx Tyxa ii y s c s h 6 e r e e A 3AT33PHhh AaBxap 3pryY-rl3JITYYA Hb xoep

AaH 3prYYJI3JIT33p XHHrAHSr 60J10Xbir M3AC3H 6HJI33. HHM33C 36BX0H 3YYH

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 .

llRotate () 4>yHKH Hb 3H3 3yparraii rsrui xsMTaiiraap xiiHrASHs. 3h3 xoep

cj}yHKHHHH p napaMeTpnttr (& ) 3aajiT Tepejrrsiirssp 6yioy xyBbcariHiiH TejieejiceH H3p33p TOAopxoHJiAor Hb Maui qyxaji iom, Y^inp Hb xyBbcaniHHH rejieejiceH H3pA eepluieJiT xhhxsa sx xyBbcarn eepuiojiTHiir uiyyA aBAar.

204

Page 202: Algorithmiin shinjilgee

3ypar 13.4. rrRotate() cpyHK433p xnwrflax flan spryyna/iTYYA

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

eepnaeJiT opox 6a yyjiHttr flsspx xoep 4>yHKH3A 30xnuyyjix ercaH.

JJapaax ^yHKUHHH Kofloop avl moaoha uimhs saeMeHT opyyjiax in se rt () 4>yHKHHHr TOAOpXOHJIOB.

tem plate <class Type>in t AVLtree<Type>: : in sert(N ode* &p, Type x ) {

in t dll- 0 ; i f (p == NULL) {

p = new Node; p->data = x ; p ->b f = 0; p -> l = p -> r = NULL;dh = 1; // Mo/IHH eHaep H3r33p H3M3rfl3H3.

} e ls ei f (x > p->data) {

i f ( in s e r t (p -> r , x ) ) { p ->b f++; // BapyyHfl3,a MOflHU eaaep H3M3ra3xi f (p ->b f = = 1 ) dh = 1 ; e ls e

i f (p ->b f == 2 ) {i f (p -> r->b f »= -1) llR o ta te (p -> r ) ; r rR o ta te (p );

})

} e ls ei f (x < p->data) {

i f ( in s e r t (p - * l , x ) ) {p - > b f " - ; / / 3 y Y H M O f l H W S H O e p H 3 M 3 rfl3 X

i f ( p - > b f == - 1 ) dh = 1 ; e ls e i f ( p - > b f i f - 2 ) {

i f (p -> l-> b f == 1) r rR o ta te (p ->1); l lR o t a t e (p ) ;

205

Page 203: Algorithmiin shinjilgee

T3HU,63pm Mod

ajieMeHT ycTraxa# m©h m oahh T3Hi*B3p a/mar^ax 6a 3H3 (^yhkuhhh k o a h t 6hhhx a^citbir yH iim p i TaHA y W 33e.

2-3-4 moa

9h 3 X3C3IT xoepn»iH xaHJTTbiH Mo^bir caibKpyyjiaH T3mjB3pr moa YYcr3X e©P H3r3H apraTaii TaHHJmaHa. 9 h 3 apraap aB1! y33X m oahh 3aHn*Jiaa Hb H3r33c o jioh TYJixyyp 3JieMeHTHHr aryyjiHa. TyxaHJi6aJi, 6hahhh toaopxoh jiox moa Hb H3r, xoep, rypBaH ty jixyYP*3** 3aHiruiaaHyyAHr aryyjiHa. 3 h s MOAbir 2-3-4 moa T3H3. X oep TyJiXYYPT3H 3aHnmaar S-saHTHJiaa rex 6a rypBaH A3A 3aHraJiaaTaH 6a ta a . 3aHrHJiaaHbi xoep ty jixyyP33C 6ara yrraTa# 3JieMeHT 3YYH cajiaaHA, xoep ty jixyyph hh xoopoHA yTraTan 3JieMeHT ayh a cajiaaHA, xoep ty jixyyP33? HX yrraTaii 3JieMeHT 6apyyH cajiaaHA opHO. Y yh h h h s t aAHJiaap (rypBaH tyjixyypT3h) 4-3aHrmiaa Hb a©PB©h A3A 3aHrmiaaTaH 6aima. XoepTHH moahw 3aHrajiaaTaif ajxmi H sr tyk xyyP tsh 3aHrajiaar 2-3aHniJiaa rex 6ere©A xoep A3A 3aHrHJiaaTaii 6am ia. )Khhi33Ji63JI 13.5 —p 3yprn im 3XHHH MOAOOp AS EA RCH T3C3H TyjIXYYPYY 330 TOITOX 2-3-4 MOAbir YSYY^33- 3H3 MOAHOOC G 3JieMeHTHHr X3pX3H XaHXbir COHHpXbe. G Hb E —33C HX, H — 33c 6ara yMHp yhacsh 3aHnuxaaHbi AyHA A3A m oahh h, i , n TyJixyYPYYAHHr aryyjxax 4-3aHrHJiaaHH 3yyH cajiaaHA xypcH33p xaiuiT (aM^HJiTryH) AyycHa.

2-3-4 m oaoha 1HHH3 3JieMeHT opyyjiaxAaa 3XJI33A (awDKHJinTyM) xaHjrraap opox 6aHpjiajibir toaopxoh jih o . 0 ©p©©p X3JI63JI opox 6aMpJiajiaap m oahh H3r HaBHHHr toaopxoh jih o . XspsB opox 3aHrHJiaa Hb 2-3aHTH^aa 6oji tyyh a uiyyA H3M3rA3H 3-3aHraJiaa 6o jiho. Xsp3B opox saHrajiaa Hb 3-3aHrHJiaa 6oji 4-3aHrHJiaa 6ojiho. T s tb s ji opox 3aHrn^aa 4-3aHnuiaa 6o ji flax B3 reAsr acyyjiT rap 1! HpH3. 3Khih33Ji63ji 13.5 —p 3yprHHH sx h h h m oaoh a g 3JieMeHTHHr xaaHa opyyjiax B3? H s r 6ojiom3ktoh apra 6oji h, i , n 3aHniJiaaHbi 3YYH A3A 3aHrMJiaa 6ojiroH opyyjDK 6o jiox 6ojiobh YYH33C h jiyy uinftoAHiir 13.5.6 3ypraap Y3YYJIJI33- 3 h 3 u ihhasji Hb 3XJI33A 4-3aHrHJiaar 3aAnaH xoep 3axbiH TyJiXYYP33P xoep 2-3aHrHJiaa YYcr3H rojibiH TYJixYYPHHr 3x aaHrimaa pyy iiihjukyyjihs. 0©p©©p X3Ji63Ji h 6a n TynxYYP 6yxhm xoep 2-3aHrHJiaa

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

Y3YYJIJI33-

Xsp3B HHr3 c 3aAJiax y^A sx 3aiirHJiaa Hb m©h 4-3aHrHJiaa 6oji flax bs recsH acyyAaJi yycH3« H s r 6ojiom3Kht apra Hb 3X 3aHnuiaar 3aAJiax, xsp3B sx

207

Page 204: Algorithmiin shinjilgee

Eyji3213

})

)r e t u r n dh;

}

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

K03(J)$HiiiHeHTHHH ©epTOeJrreep 30XHX 3prYYfl3JITYY#H-Hr rYHij3TT3H3.

in s e r t ( J 4>yHKHHHH KOAOOC XapaxaA ± 2 T3HIJB3pHHH K03(j)c|)HIJ,HeHTT3H

6ojicoh 3aHnuiaar p 3aarq hb 3aaHa. Xsp3B ash spryYJisJiT xhhx maapAJiaraxaft 6 oji p saanH H H 3aax 3aHrHJiaaHH xyBBA 3pryY-^3X (fcyHKijHHr AyyAaac airHJiJnyyjiHa. XspsB AaBxap spryYJisJiT xhhx iiiaapAJiaraTaH 6oji sxh hh yAaaA p saHTHJiaaHH 3yyH scbsji 6apyyH A3A 3aHTHJiaaHLi xyBbA spryyjisjrr xhhtssa, Aapaa hb p 3aHrHJiaam>i x yb la spryyjisjiTHHr ryHii3TT3H3. 9 h 3 4>yHKii;33p 3©BX0H AaBTarAaaryH 3JieMeHTyyA33c t o i t o x a v l moa yychs.

YyCC3H A V L MOAHr X3BJI3X p r i n t () (JjyHKIJHHr AOOp y3yyJLH33.

t e m p l a t e < c l a s s T y p e >

v o i d A V L t r e e < T y p e > : :p r i n t ( N o d e *p, int ws) {

if (p != NULL) {

pr i n t ( p - > r , w s + = 6 ) ;

c o u t « setw(ws) « p - > d a t a « " " « p - > b f « endl;

p r i n t ( p - > l , w s ) ;

0H 3 4>yHKU[ HB MOAHr UarHHH 3YYHHH 3cp3r ^HraSJIA 90 X3M 3pryyJI)K Y3YYJIC3HT3H aAHJI X3BJI3X 60JIH0. 0 6 p0 0 p X3Jl63JI xaMrHHH HX 3JieMeHT XaMrHHH 3X3HA XaMIHHH A33A M0p©HA, YHAC3H 3aHTHJiaa XaMrHHH 3YYH TaJIA, xapHH xaMrHHH 6ara 3JieMeHT xaMrHHH a o o a m opoha X3BJi3rA3X 6ojiho. p r in t ( ) 4>yHKH HB 3aHrHJiaaHLI ©rorAJIHHr T3HIJB3pHHH K03(i)<|)HIJHeHTHHH

XaMT X3BJI3X 60JIH0.

A V L tre e< in t> t ;

^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

Page 205: Algorithmiin shinjilgee

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

Page 206: Algorithmiin shinjilgee

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

Page 207: Algorithmiin shinjilgee

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 .

13.10 —p 3ypraap 3H3 sprYY-nsflTHHr Y3YYJIJI33-

3ypar 13.10. 3pryYfi3nT33p flapaancaH ynaaH xon6oocbir apmvax

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

Page 208: Algorithmiin shinjilgee

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

yflha ojiroHO, Xapirn s ea rch ( ) (JjyHKU XS3SS h shs Taji6apbir amHrJiaxryft. Gepeep xsji6sji MOAbir TSHUB3pr moa 6ojitox shs MexaHH3M Hb xaiurrbiH Yhacsh yiiJiA3JiA 3apuyyjiax xyraitaaHA Hejieejiexryft tscsh yr.

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

Page 209: Algorithmiin shinjilgee

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.

3 y p a r 13 .12 . 3-3aHrmiaaHaac canaancaH 4-3aH n u iaar 3afl/iax y©A rapn 6onox acyyfljiyyfl

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

Page 210: Algorithmiin shinjilgee

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

Page 211: Algorithmiin shinjilgee

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

Page 212: Algorithmiin shinjilgee

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.

9HA33C 44217 = 80 (mod 101) 6 yioy A K E Y TpiXYYP Hb XYCH3ITHHH 80 #axb 6aHpJiajiaap xaarJiarAana. fls sp x 4>yHKH33p xychsith hh w xhji Qaiipmmn xanrJiaraax ©op ryJixYYPYW Baitnar. Tyxaftji6aji b a r h tyjixyyp Hb moh 80 Aaxb 6aitpjiaji xanniarflaHa.

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

1011000101100101100101100011110111000111010110010111001

rscsH 55 6h t33c t o i t o x uyBaa YYC3* 6a s h s Hb aapaax t o o h yTraxaii T3HHYYIOM.

22*32i°+5*32s+18*32>+2S*32,+12*326+15*325+14*324+7*323+U*322+5*321+25

3 H 3 HJISpXHHJIJIHHT ep flH H H apH(J)M eTHK (J)yHKH33p KOMnbKJTepT to o u o o jio x o a X3T tom 6ere© A 6 o a h t Gaii/iajizi ty jix y yp Hb y y h s sc 'I h x yrraap ToflopxoHJiorflHor.

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

(((((((((22*32+5)*32+18)*32+25)*32+12)*32+15)*32+14)*32+7)*32+11)*32+5)*32+25

r e * 6h h h3k 6ojiho .

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.

Char *V = "VERYLONGKEY"; unsigned hash(int M) {

int h;char *t = v; for(h=0 ; *t ; t++)

h * (32*h + (* t -6 4 )) % M; return h;

)

215

Page 213: Algorithmiin shinjilgee

Ey/ai M

h a s h ( ) (JjyHKUHHH apryMeHTaap xycHsrTHHH X3M5K33 Sy ioy ShahhhJKHIH33HHH XVBtfl M=101 I'3C3H yTra flaMJKyyJiaX IOM. 9h3 (JjyHKUHHH h XVBbCarH Hb V TYJIXYYPHHH XYCH3IT3A Safipjiax XaHTHftr TOflOpXOHJIHO. fls sp x h ash () <|>yHKU.3H amnrjiaracaH 32 6a 64 rscsH to itm o ji TOOHyyabir 36BxeH 3HA aii't Y3C3H >KHLU33HH TOXHpyyJiaH TOflopXOHJICOH. 32 Hb TyjixyYPT OPOJIHOX h h h t HJiraaTaii ycrHiiH to o iom. Yhhp Hb Ghahhh *h iu33hh hh tyjixyyp Hb 39BX0HA - £ TOM YCl'YYAHitr 5 6HT33P HJI3pXHilJIC3H. * t Hb TyjixyYPHHH TyxaftH Hsr TSMAsrrHftr to jiopxohjiox 6a 64 —Hftr xacaac 5 6h t Koawr rapraH aBHa. (a Yc™ ftn K°£ 65 6a 64-nftr xaccaHaap 1 rscsn Koaroil 6ojiho.) Fsbh s a rs s p TorTMOJiyyn Hb 30bx©h TyxaftH xsp srJ issH ssc xaMaapaH ToaopxoHJioraaor 6e reea 3Ha TsarespHiiH yrra a Map 6aftx Hb lyxa ji 6hih iom. Y 1

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.

H(3205S = 32 + 05 = 37, H (7148) = 71 + 48 = 19,H (2345) = 23 + 45 = 68

/133PX 5KHIII33HA H (714 8) —HHH 3XHHft 1 T3C3H OpOHr Xaff* 6aHHa.

Bcbsji ty jixyyph hh xoep aaxb xscrnftH (HSMsrasxyYHHft) HH^pYYOTftr ToiiropyyjiaH h s m x ojiiior.

H (3205} m 3.2 + 50 = 82, H (7148) = 71 + 84 = 55,H (2345) 23 + 54 = 77

KsaapaT 33psr aaBiuYYJiax apra. 3 h s apra Hb TyaxYYPHftr KBaapaT 33psr AdBuiYYnx, rapcaH yrrbin xoep TaJibiH uii(})pYYaHftr ycTraH ro ji opoHryyaaap xaarifiir roaopxoitJiaor. Jiran aBax opoHryyawH 6aiipjiaji Hb 6yx ryaxYYPHtt 11

216

Page 214: Algorithmiin shinjilgee

Hash

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

217

Page 215: Algorithmiin shinjilgee

Byjm 14

0 1 2 3 4 5 6 7 8 9 10

Y ; Y

8 .. ©3 y p a r 14 .2 . C anaH rnfl raH>KMH apra

(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

Page 216: Algorithmiin shinjilgee

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.

mynxYYP- 0 ® [ l ] 0 ® ® ® 0 § @ @ 0 0 @ 0 0 ®

hash: 1 0 5 1 18 3 8 9 14 7 5 5 1 13 16 12 5

3ypar 14.3. Hash cjDyHioj (M=19)

T3FB3JI 3AT33p TyJiXYYPYYAHHr uiyraMaH TaHAax apraap opyy/icaH xycHsrraHr14.4 —p 3ypraap Y3YYJL/I33- flaBxapAcaH TyJixyYPYYA xycHsrreA 3©piihji yycc3H 6aHpJiaji 6a xoocoh 6 aHpJiajibiH xoopoHA opuinx 6or00A xapHH AapaajicaH 6aiix aji6aryH.

UiyraMaH TaHAax apraA xychsithhh X3M>K33 hb hhht orer^yiniiH toohooc hx (m>n) 6aiix ecTOH. Thhma uiyraMaH TaHAax aprbiH y^a auniniax xycHsrr X3M}K33 h l fhidkhh apra# aurarjiax xycH3iT33c hx 6anx 6ojiobh H3M3JIT 3aarii auiHrjiaAarryii.

Toaopxoh H3r TyJiXYYpMHr uiyraMaH TaHAax apraap xanxa# yr TYJixyypT3H Hitaui xaaraap TOAopxoitnorAcoH xycHsir asx 6yx tyjixyyp13** xapbuyyiDK qaAijar. XapHH xataTbiH ABijaA h)khji 6hiu xaaraap TojxopxoiiJiorAcoH Tyjixyyp YPCT3H xapbijyyjiax toxhojiaoji rapAar. fljiaHryaa xycHsrr Hb 6apar AYYP3H yeA hhm xapbityyjiajiT 3Ji63r toxmojtaoho. }Khui33Ji63JI 14.4 —p 3yparr Y3YYAC3H XYCH3IT33C x TYJixyypHHr xanx yeA g,h, i T3C3H wdkhji 6hui xaaraap TOAOpxoHJiorAox TyJiXYYPYYA xapbijyynarAax 6ojiho. Mhmssc uiyraMaH TaHAax apraap xhhx x a t o Hb yAaauipax TajrraH.

3h3 acyyAJiwr catepyyjiax 3apHM apryyA 6aiiAar. YyhhU Hsr apra 6o;i Keadpam mahdax apea iom. XaMrHHH 30pmji rapcaH 6aupjiajiaac h, h+i, h+2, ... rs)K A3C AapaajicaH 6aHpJiaJiyyAaA uiyraMaH xafixHH opoHAxycHsrTHiiHh, h+i, h+4, h+9, ..., h+i2, ... 6aHpjiajiyynaAaJiracaac6aHAar. M3A333C XYCH3IT3A xaArajiarAax TYAXYYPYY^MHr 3H3 apraap opyyjicaH 6aiix ecToii.

UiyraMaH TaHAax aprnr cau^cpyyjiax AapaaiiHHH H3r apra 6oji daexap h a s h

xaMjicuimuH apra iom. 3 h a H (k ) = h 4>yHKU33C raAHa xoep Aaxb H ' ( k ) = h ;

^yHKUHlir aUIHrJiaAar. XaHJITblT XYCH3ITHHH h, h+h ', h+2 h ', h+3h , ...

219

Page 217: Algorithmiin shinjilgee

T3MH31T M0p

Byjisr 15

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

Page 218: Algorithmiin shinjilgee

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

h' ( k) (JjyHKHYYA Hb s;iraaTaft 6aflx iuaapjpiaraTaH.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

00 BHB 0■■0 mmmm m 01111110 □ m1111111] 0 0 mmmmm m am. Bmmmm m mm 0 smmmm m 0 bb m mmmmm m m m m m m

[iBaaHH si B1111311113011111111111111111 3 mmmmmmmmmmmm @b hBBBBBBBBBBB ■■ 0 BBBBBBBBBBB 0 B0 M H B a® ra i3HBBS0 BB® H

m

3ypar 14.4. LUyraMaH TaHflax apra

H 33jitt3h xaaraajiTbiH apryynbiH H3r xyHflpsjrraft Taji Hb xycHsrresc Tyjixyyp ycrrax yea rapn Hpusr. 3 h s ye# ycrracaH sjieMeiroiHH 6aftpjiaji xoocoh 6ojiox 6a TyyH33c xohho opurax TyjixyypyY/13,5 xanjrr xniirasxryH opxnrjiox 6ojiho. Ep Hb H33JITT3H xaHraajrruH apryyn Hb opyyjiax (y c r ra x ) TyjixyypHitH Toor ypb/iiHJiaH X3JDK M3.H3XTYH yea toxhpom>k Myyraft iom. Gepeep X3JI63JI hhWt xycH3iTHHH x3M *33r ypmHHJiaH TOflopxofijioxoA xynnpsji rapHa.

220

Page 219: Algorithmiin shinjilgee

Tajudsem mp

TaMflarT Mepa opoaiiox HJiraaTaii tsm a sith h h too Hb TSMflsrr Mep SoaoBcpyyjiax anropHTM 3oxnoxo£ 'jyxaji HeJieeTsii.

XaMraiiH 3HTHHH xaiwiTHH apra 6oji xaiix TSMflsrr Mopjiiir TecKT M3,n33JmniiH

TyxattH 6aftpjiajia 6aiijK 6 o j i o x 3C3X33C yji x a M a a p a H 6 o j i o m )k h t 6yx

SaftpjianHH xyBta inawaflar. flapaax 4>yHKU33p 3H3 aprtir HSBTpyyjibe.

<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+ + )

if(text[i] != pat[j ]) { i -= j; j - -1; ) Vif(j==m) return i-m; else return i;

)

(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

yflaax 6aiipaaiifl HiHracyyiiHS. flaBTajrraac rapaxafl (j==m) Hexuen 6ne;icH33p

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.

fl,33px cf>yHKU3A T3MA3TT MSpTStt aJKHJIJiaXflaa T3Mfl3rTYYaHttH MaccHB

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

Page 220: Algorithmiin shinjilgee

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

T3MA3rr Mepeec raflHa TSMflsrr MepnttH 3arBapaap xattx yeA anrarjiaflar.

>KHia33Ji63Jt 3areapBir ‘?un’ rsac TOAopxottJicHoop A y p H H ycresp 3XJI3H, un reac xercceH 6yx yrHttr xaitaia.

(3) XsjreyttH 3afljian anraji x h h x aJiropHTM. 9 h s h b xyH TepejixTeHMii xsji

6o j i o h KOMnBJOTepHHH n p o r p a M M xepByyAaraYYflaA amHniarAflar.

(4) MsAssjumttr max a x 6a 3 a j y i a x aJiropHTM. 9 h s a n r o p H T M H H roji 3opHJiro

hb M3fl33JMHttr 6ara 3attHfl xaflraaaxafl opuiHHo.

(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

6yp33p 6arnnaH xapraA3ax tbkct TSMflsrrssp HAapxnibrex 6oaomxtoh.

222

Page 221: Algorithmiin shinjilgee

Eyjiae 15

ij33px cj)yHKU3A bp, sp 3aarayyA xapra3aH text 6a pat T3MA3IT M©pyyA33p ryiix 6a xaifJTT aM xaunraft 6oji pat —hh h text — a 6anpjiax xaarHHr 6yu;aaHa. XaHJiT aivcKHJiiTYH 6oji null y rra 6yu;aaHa. X a to r a H aaauuiax 3ap*iHM hb©MH0X (J)yHKIj;T3E[ IDKHJI IOM.

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

Page 222: Algorithmiin shinjilgee

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

TCKCT33C XaHX Y©A AOTOOA AfrBTaJTTblH TOO Hb OHpOJIIJOOrOOp T3MA3IT MepHHH ypnaH aAHJixaii 6aiix 6ojiho.

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.

KMP ajiropHTM

KMP (Knuth, M orris, P ra t t ) ajiropHTM Hb A33PX SHTHftH ajiropHTMbir ca ii^cpyyjicH aap xaMTHHH HXA33 n+m xapb u yy jia jrr XHHA3r. 3 A r3 3 p a/iropHTMbiH ajiraar xs jis jiijsxhhh ©mho 15.1 —p 3yprHHr 3pr3H aBH y3be. 3ypraac xapaxaA t3ma3IT MepHHr 3XJI33A tck c th h h sxhhh 6aiipjiajiaac, Aapaa Hb xoep Aaxb 6aHpjianaac, Aapaa Hb rypaB Aaxb rsx m sthhjish tck c th h h 6yx 6anpjiajibiH xyBbA xapm yyjiaH xaibK 6aiiHa.

n a i v e s e a r c h ( ) 4>yHKIJHHH AOTOOA AaBTaJITaap T3MA3rT MepHHH T3MA3iTYYAHHr xapbuyyjiax yhaa3JI xhhx 6a raAaaA AaBTajiTaap tc k c t A3X xapbijyyjiajiT xh hx 6aHpJiajibir Aapaa^HHH 6aiipjiajiA h ih jd kyY -^ 6aHHa.X3P3B TCKCTHHH T3MA3IT M©pT3H XapbljyyJDK 6yii 3XHHH 3JieMeHTYYA aAHJixaH6oji raAaaA AaBTajiT i Hb a o to o a AaBTajrr j —hhh xaMT H3r Hsrssp 33psr H3M3TA3H3. X 3p3B T3MA3IT MepHHH HMap H3r 6aHpJiaJIbIH T3MA3IT T3HJJYY 6hui 6oji a o to o a AaBTajiT AyycaH, i AaBTajiT 6yuaac xapbuyyjiajiT 3X3JIC3H 6aHp^ajibiHxaa Aapaa^HHH 6aHpjiajiA uihjdkhh T3MA3it M epniir AaxHH 3XH33C Hb xapbuyyjOK sxs jih s . T s tb s j i Aapaax 3KHiU33HYYAHHr coH H pxu rooe. naivesearchO (J)yHKU33p 111101111011111001 TCKCT33C 11111 T3MA3IT MepHHr xaiixAaa:

111101111011111001

11111

225

Page 223: Algorithmiin shinjilgee

ByAse 15

11110111101.111100111111

111101111011111001 *

11111

11110111101111100111111

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

Page 224: Algorithmiin shinjilgee

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 .

11111111011111001 i=4, j-4

11110

XapbiiyyjiajiT aMxmrrryii 6ojiox toxhojiaoji^ 3eBxeH TskflsrT MepwiiH aMsouxTryii 6ojicoh 6aiipjiajiHH eMHex 6aiipjiajifl ihmjdkhh xapbuyyjiajiTbii yprsjrauiyyjiHs. Yhhp Hb TSMflsrr Mepnto sxhhh flepBeH TSMflsrr afliuixaH 6ereefl eMHex xapbuyyjiajiTbiH yp flyHr33c T3M,£i3rT MepMMii 3XHHit rypBaH T3Mfl3TTHb TeKCTHHH 1 (fl93px TeKCT3fl TOUOOp T3Mfl3rjI3rflC3I I l)T3Mfl3ITHHH eMHex rypBaH TSMflsrrrsii h*m/ix3h 6ojioxbir msjihs. Mhmssc aapaa'iHHH xapbuyy/ia^Tbir i=4, j =3 6aiipjiajiyyflaac YprsJiaoryyjisH xh'mhs.

11111111011111001 is4, j=3-

11110

© e p e e p X3n63Ji x a p m y y j ia j iT b in H B iia fl T S M fls r r M e p H iiH H M ap T3M ,n3rr a s s p

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

Page 225: Algorithmiin shinjilgee

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

Page 226: Algorithmiin shinjilgee

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.

TeKCT: 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 T e jio e : 1 2 0 1 2 3 4 5 6 2 3 4 5 6 7

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

Page 227: Algorithmiin shinjilgee

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

Page 228: Algorithmiin shinjilgee

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

aMxmrrraft xhWotiss.

3ypar 15.4. B -M anropHTMaap xswwarr Mep xaiix

f l,apaax anxMyyaaap b-m aiiropHXMHr TOAopxoMbe.

1. T3Mfl3rr MepHftr xeKcxwttH sxtisassc xapraJi3yyJiaH 6 a ttp jy ya *, xapbjuyyjiajirbir Tsuwsrr MepHftH Tercrejieec 3XM3Ji ypyy TexcTHftH xapran3ax 6attp«aJiHH xsnasrTTsif xapbqyyjma. 3h3 arcropHTMMH kmp

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.

2. XspsB xapbuyyjiaJiT aMXH/irraft 6oji6oji flapaaiHilH xapfcuyyjiajiTNr (reKCT 6o^oh T3MA3rr MepHHH xapbuyynra/iT aMacHflTxaH Sojicoh 6aftpaa/iHH) oMHex xoep TSMHsrmifH xyBba xnitHs. 3hs y#JM3Ji Hb bmsearch () 4>yHKUH#tH for AaBTa/ITblH i - - 6a j - - yftJUWYYflSSp

231

Page 229: Algorithmiin shinjilgee

T'Midsim Mep

AT-THATWHICH-FINALLY-HALTS.AT-THAT-POINT

,H33pX UXHJDKYYJI3JITHHH YP AYIW T3MH3IT MOpHHH T3MA3IT Hb TGKCTMHH‘ T3Mfl3rrr3H Aa im iaH 6ailpjiaHa. Xapm yyaa/iThir TSM flsrr Mephhh

T ercre jieec sxjisx 6a ‘ t ’ tsm ssithhhxyBbA aMaaircrraii 6ojtcoh 6aHHa. Mhma AapaaMMHH xapbuyyaanrar H3r d a u p n a n yparrn uiHriacYY-'i* xhhhs.

AT-THATWHICH-FINALLY-HALTS.AT-THAT-POINT

3HA TeKCTHHH V T3MA3IT fl33p XapbUVyjiaJlT aMXHJITTYH 60JIC01I 6er©9A ‘h ’

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

Page 230: Algorithmiin shinjilgee

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 .

Page 231: Algorithmiin shinjilgee

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

a nropHTM i o m . ©HeejipHiiH o j i o h u i h h s ajiropHTMyya b -m aJiropHTM flsap

YHH3CJI3C3H, caftacpyyjicaH xynnji6apyyji Saiiflar.

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.

Page 232: Algorithmiin shinjilgee

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

UIHJDKHJITHHr TOAOpXOftjICHH Aapaa B-M XaftjITHH aJiropHTMHr H3BTPYYJ13X

H L xajl6ap IOM. flapaax bmsearch () <J>yHKU33p B-M aJiropHTMHr H3BXPYYJ1JI33-int b m s e a r c h {char *pat, char *text) {

int i , j ;int M * strlen(pat), N = strlen(text); initpos(pat);

f o r ( i = M -l, j = M -l; j >= 0 ; i - - , j - - ) w h ile ( t e x t ( i ] != p a t [ j ] )

{i += max{M-j, pos [text [i] ]) ;

if (i >= N) return N;

j = M-l;

}r e t u r n i+ 1 ;

}

bmsearch ( ) cjjyHKUHHH 3XHHH pat a p ryM eH T a a p XaHX T3M A3rXHHr, A apaa 'IH H H

text a p ry M e H T a a p T e K c x H iir x y c T y c A a M x y y jiH a . XspsB pos M accH B H H 6 y x

y T ra 0 S a ftB a ji x a f t j iT H H x a M rn ftH a x H H ft s h t h b h a p r a n a i v e s e a r c h ()

a jiro p H T M H H 6 a p y y n a a c 3 yyH H H m sJiA x a p b u yy jia r rr x n ftx xyB H JiSapxaft hjkhji

60JI110. yqMp H b i+=M-j yhjiasji H b i —h h h y r r H r TYPYY^H ftH x a p b u y y jia ir r

sxsjicsh 6 a ftp jia n H H A a p a a iM H H 6 a ftp jia jiA x y p r s x 6 a j =m- 1 yftJU U issp tsmasix

M ep H H H 6 a p y y H T an aac x a p b u y y j ia j i r n r sxJ iyyJW sr. T s b i pos M accH B H H 6 y x

y r r a X3333H 0 6 a ftA a r ry ft 6 a xap H H hx s h x 6o a h t x s p s r a s s H A tsmasit M epH H H

y p ra a p ihhjdkhjit xhjok 6 a ftn a r .

b-m ajiropHTMHH xapbuyyjiajiT H b n+m —sac X3333 h xaTpaxryft 6a xsp3B tckct H b ojioh AJiraaTaft T3MA3IT33c toitoh, xaftx T3MA3rr M e p ypr 6hiu 6oji

234

Page 233: Algorithmiin shinjilgee

B y J is r 16

3 a r s a p a a p T 3 M f l 3 i r M e p x a i i x

0MH0X X3C3rT 6HA TOAOpXOH HSr (TOrTMOJl) T3M A3IT MepHHr xanx ajiropiiTMyyzrraH TaHHJiucaH. Tsebsji Maui ojioh xspsn issH A toaopxoh H3r tsmasit MepHHr xanxaac raAHa tsmasit MepHHr HMap Hsr X3B uihhjkssp ojuk aBax maapAJiara rapnar. >Khiu3 3Ji6 3 ji b ycrssAHHH uyBaar xoopohaoo aryyJicaH xoep a ycsr 6 yxhh X3B uiHHacssp tsmasit MepHHr xataaji aa, aba, abba, abbbbba T3X M3T T3MJI3IT MepYYfl YT HOXUJIHHr XaHraX 60JIH0. Hhm T3MA3IT MepyYAHHH epeHXHH X3B uihhhcssp Hb 3arBap YYcr3H y r 3arBapT Toxupox T3MA3IT MepYYOTHr xaHAar.

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.

(2) 6ytoy: T3MA3rT MepHHr xanx 3arBapT 6ywy yhjiaji33P xo;i6orAcoHT3MA3ITYYA TeKCT M3A33AA3SC OJIAOXAOO aJIb HSr Hb OpOJIUCOH 6aHX

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

Page 234: Algorithmiin shinjilgee

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.

3 A resp ytoOTYYA op o jiu coh T3MA3ix M opniir sh th h h h jispxh has ji tshs . TeKCT M3A33JIiI33C 0r©rAC0H 3HrHHH HJI3pXHHA3JIA (3arBapT) TOXHpOX T3MA3rT MQpHHT OJIOX Hb 6HAHHH TOJI 30pHJir0 60JIH0.

ffpspx rypBaH yhacsh ywjuui33c raAHa TyxaiiH cucxeM H3M3jit yftWiYYAMHr TOAopxoitficoH 6aHAar. )Khui33Ji63ji, ~d Hb d —aac 6ycaA AypbiH T3ma3it, ? T3MAr33p AypbiH H3r T3MA3IT T3X M3T.

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.

3aruapaap xaflx m h u jiiii

T3MA3IT MepHHr 3arBapaap xanx ajiropHXM Hb t3 m a3 it Mep xaMx (eM Hex X3CrHHH 3XHHH ajiropHXM) 3HTMHH aprbiH aAMJl XeKCXHHH 3YYh P M C 6aMpjiaji 6ypT xaHJiTbir XHHA3r 6ereeA xercrejier-xeJieBX MauiHHaap xeKciMMr uiajirax kmp ajiropHXM A33p YHA3CJi3A3r. kmp anropHXMbiH xercreJier-xe/ieBX MainHH Hb tckcthhh X3MA3rTYYAMHr majiraxAaa Hsr xejiBeec Heree xojiobx ihhjdkhx 6a xapbiiyyjiajix aMaaurrraH 6ojicoh scsxssc maJixraajiaH HAraaxaii; xbabyya PYY uiHJDKAsr. Xapbyyyjiajix aMap H3r x3MA3 rr A33p aM^KHJixryii 6oachoop xapbuyyAajixbir sxsjicsh xckcxhhh xyxaHH 6aiipJiaJiA xaii.>K 6awraa T3MA3IT Mep 6aHxryHr HJiTr3H3. kmp ajiropHXM Hb xercrejier-xejieBx MauiHHbi aAHA aaouiJiaAar 6ereeA opoAXbiH x3MA3rxMHH yxraac xaMaapn AapaaHHHH ohhx toabhhh yrra Hb modopxou 6aHAar.

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

Page 235: Algorithmiin shinjilgee

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

3ypraap y3YYJUi33.

3ypar 16.1. (A*B+AC)D 3arBapbiH Toflopxow 6yc Tercrener-TeneBT MaiuMH

3yparr TOJiByy^HHr Tooroop AyraapjiaH ysyyJicsH 6aiffia. MauiHH Hb 30Bxoh H3r aHXHbl T0JI0BT3H 6a M0H H3r T©rcr0JIHHH T0JI0BT3H. M0H T3MA3rTYYAHHr aryyjiax yhacsh T0JIobyyA33c raAHa xoocoh (n u ll ) TejiByyAHHr aryyjma. Null TOJIOB Hb Hsr scbsji xoep rapajrrraH 6a«Ha. H sr rapajrrraH n u ll tojiob (tojiob 4) Hb ManiHHH yfijiAdJiA flMap h H0JI0O YSYYJi^xryH. Hhm TejiBHiir nporpaMMluiax yeA 3apHM 3yHJiMHr 3oxHnyyjiax 3opHJiroop aurarjiax iom. TeKCTssc yHiHHrAcaH t3MA3it Hb MauiHHH T3MA3IT aryyjicaH TOJIBHHH T3MA3ITT3H ToxMpii 6 an Bail AapaaHHHH “3aarAcaH” tojiob pyy muJDKAsr. 3hs MauiHHur xoep rapajnraft n u ll tojiob Hb toaopxoh 6yc T T M 6ojiroAor. HMapq rapajiTryn TorcrojiHHH tojiob 9 Hb MauiHHbir 3orcooAor. Toaopxoh 6yc Tercrojior-TOJIOBT MauiHH Hb xaHJrr xaaHa aMiKHJiTTaii 6ojiox T3p 60Ji0M)KMHr TaaBapJiax qaABapraH 6aHAar. TaaBapJiajiTbiH HBuaA xapbuyyjiajiT aM CHJrrryH 6oji MauiHH myyA 3orcoH TeKCTHHH AapaaHHHH 6aHpJiajibiH xyBbA a CHJIJiaHa. )KHIII33Jl63JI (A *B + A C )D 3arBapT TOXHpOX T3MA3TT M0pHHr CDAABCAAABDDACDAAC TeKT33C XaHX Yefl MaiHHH Hb TeKCTHHH H3T 6a xoepAyraap t3MA3IT33c 3XJI3X yeA aJKHJUiaxryH 6or0©A TaB 6a 3ypraAyraap T3MA3ITYYA A33P MOH a^KHJDiaxryH. XapHH AOJiAyraap T3MA3IT33c 3XJI3X yeA AAABD F3C3H T3MA3IT MOpMHX OJIHO.

MaiHHH yycr3XA33 3XJI33A 0r0rAC0H 3HrHHH HJISpXHHJUIHilH a3A X3C3T 6ypA TycaA Hb MauiHH yycrssA, Aapaa Hb T3Ars3pHHr rypBaH yhacsh (hhhjisjit, 6yioy, AaBTajiT) yhjiajiyyahhh TycJiaM^KTaiiraap xoji6oAor.

0XJI33A T O A O p X O H H 3 r T 3 M A 3 I T T 3 H H X MaiHHHbir TOAOpXOHJTbe. 3 H 3 H b a H X H M

TOJIOB (T3MA3IT TaHHX), 3Ii;CHHH TOJIOB 6 y X H H X O e p TOJIOBT M a i H H H M 3 T 3 3 p

y3yyjDK 6 o j i h o . Y y H H H r 16.2 —p 3ypraap y s Y Y ™ 3 3 -

238

Page 236: Algorithmiin shinjilgee

3aeeapaap m3Md3zm Mep xaux

- — ® — □

3ypar 16.2. TaM^arr TaHMX xoep TeneBT MaiunH

3HrHHH HJI3pXHHJDIHHH “h HHJIOJIT” yHJUUIHHr TOflOpXOHJIOXtfOO H3r MaLLIHHbl Tercro/iHHH TOJiBHMr xoep #axb MauiHHH aHXHbi t©jiobt3H HHHJiyyjiflsr. YyHHHr 16.3 —p 3ypraap y3yyjui33.

3ypar 16.3. “HuM/ianT” yM/iflnaap yycax MauiMH

3HIHHH HJI3pXHHJUIHHH “ 6yiOy” yHJI#JIHHr T0#0pX0HJI0X£00 xoep MauiHHbi aHXHH TOJIBHHr X0Jl60C0H H3r null T0JI0B H3M3X 6a H3r TOrCTOJIHilH TOJIBHHrnull 3aHriuiaaraap cojihh n eree MauiHHbi TorcrojiHHH tojiob pyy 3aajira#ar. YyHHHr 16.4 —p 3ypraap y3yyjui33.

3ypar 16.4. “Byioy" yw/ifljiaap yycax MauiMH

3 u3ct Hb “flaBTajiT” yHJuyiHHr ToaopxoHJioxnoo TercrejiHHH tojibhhi' a hxhh T0JI0B 60Jir05K, UIHH3 aHXHbi T0JI0B Hb Xyy4HH aHXHH TOJI0B 6a UIHH3 TorcrojiHHH TOJIBHHr 3aaHa. YyHHHr 16.5 —p 3ypraap Y3yyjui33.

-a

3ypar 16.5. “flaBTanT” yMJiflnaap yycax MaiuiiH

Bhahhh 0MH0 aBcaH jkhuiss MauiHHH TOJiByya Hb yycc3H jjapaajuiaapaa ^ypaarjiar^caH iom.

239

Page 237: Algorithmiin shinjilgee

3aeeapaap msMdsem Mep xaiix

apraap 6oAOMO/cum 6yx moxuojidnbie m a jira x 3aMaap 30B xapw yr o jdk aBH 6ojiho.

3 h 3 acyyctJiw r nostiftS K H 3 r ap ra 6o ji peKypc am wrJiaH 6yx T o x w o w ib ir m a jira jK 6o jm o . XapHH 6h # h h h aBli y33X apra Hb peKypc am nrJiaxryH 6©r©0A TeiiBYYAHHr daexap meaceonm dapaanand xa^ra jiaH iu h h ^ s x 6o jih o .

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.

n u ll T0Ji©BT3H axH /u ia x ye# cTeKHHr a n m rjia x uiaap/m araTaH 6or0OA X3p3B TyyHHHr xoep to /io b A ara jm B aji H 3 rra r cxeier (napaaJDibiH s x jis jia ) xa^ra jiaH , H©r00A 6o jio B c p y y jia jrr x h h h s . XapHH n u ll 6h iu tb jio b H b^apaa jia ji maapzjax G eree# u ih h 3 to jio b Hb A apaajuibiH T o rc ro ji# op ho . M hm xoep TopjiHHH 6ym H H r H3nT3C3H AaBxap T e rc re jrr A apaa jia ji Hb 3H3 6o# jio rb iH u ia a p /y ia rb ir xaH rax G ojiho . ^a s x a p re rc ro jr r iapaaJD ibiH Tyxan 8 —p 6 y jir3 3 p TOAopxoft Y3C3H G eroea s h a a m w rjia x ra p a jiT Hb XH3raapJiarAMaJi #aBxap T orcroJiT ^apaa ju ib iH Krcaccbir m oh 8 —p G y jis rr to ^o p x o h jic o h .

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

X3A X3A3H 60JI0M3KHT T0JI0B TOXHOJmOX 6©r00A 3AI’33p TOJIByyAHMr p u s h () ,

p o p (), i n s e r t () (JjyHKnyYAWHH TycJiaM3KTaHraap AaBxap TorcroJixAapaarcajm

xa^rajiax 6ojiho.

c h a r ch[10] = { ' \ ' A ' , ' ' B ' , ' \ '' I ;i nt n e x t i ( 1 0 ] = { 5, 2, 3, 4, 8, 6, 7, 8,

int n e x t 2[10] = { 5, 2, 1, 4, 8, 2 , 1 , 8,

c o n s t i nt sc a n = -1;

int p a t t e r n m a t c h ( c h a r *text) {

D e q u e < i n t > dq;

i n t n l , n 2 ;

in t j = 0 f n = s t r l e n ( t e x t j , s t a t e = n e x t 1 J O ] ;;

d q . i n s e r t ( s c a n ) ;

w h i l e (state) {

if (state = = scan) {

\ 'A ' , 'C ' , 'D ' , i

9, 0};

9, 0);

241

Page 238: Algorithmiin shinjilgee

Byjias 16

M a m H H b i r H J i a p x H i i J i a x

S h T M h HJTSpXHHJIJTHHH YHflC3H rypBaH YHJW-JI33P YYCC3H TOflOpXOH 6yC

Tercrejier-TejieBT MauiHHbir tyyhhh Maui s h th h h OHiyior 6ojioh AYPME[Hr

auiHniaH xHJi6apxaH nporpaMm'THJDK 6ojiho. TyYHHHT OHiyiOTHHr Aypb^Baji, TejieB hb xoepooc xsTpsxryn rapajiTTaw 6aHHa. 0 ep o 0 p X3Ji63Ji 30BX©h H3r rapajnraH tsm ^sit aryyjicaH tojiob 6a xoepooc xsTpsxryn rapajrrraH null

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 ] )

T0JI0B PYY UIHJDKHH3. 3 H 3 5KHUI33HHH XyBbfl TeJieB 9 Hb T0rcr©JIHftH T0JI0B

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.

Bm 3HrHHH HJI3pXHHJTJT33C TOflOpXOH 6yC TTM —bir X3pX3H YYcr3X 6ojioh

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

Page 239: Algorithmiin shinjilgee

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 ) ;

}i f (dq.empty() || j==n) return 0 ; dq .pop (state );

}return j ;

}

flaapx patternm atch() $yHKIi; HL apryMeHTaap HpC3H text TCKCT33C (A*B+AC)D 3arBapT TOXHpOX T3MA3IT MepHHT ch, n ex tl, next2 T3C3H MaccHByyjnaap hjispxhhjistasx To^opxoH 6yc MauiHHLi TycjiaMacranraap xaiffla. Xsp3B TeKCT33C 3H3 3arBapT TOXHpOX T3M^3IT Mep OJmOXTYH 6oji 0 rscsH yTra, xapHH ojiacoh toxhojiaojia MaiiiHHbi TercrejiHHH tbjiobt opyyjicaH T3M£3ITHHH Teiccre# 6anpJiax Saftpjiarar 6yu;aaHa. Gepeep xsjiSsji eMHex TSMflsnyYfl hb 3arBapT ToxHpox sxhhh d tsmasithhh 6aHpJiajn>ir 6yi|aax iom. AnropHTMHr xoHreBHJiex 3opHJiroop text —hhh Tercrejm ch MaccHBT SaHxryH T3MA3rTHHr H3M3C erae. vKhiii33ji63J[ tckcthhh Tercrejw IJ3T H3M3K 60JIH0 .

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

Page 240: Algorithmiin shinjilgee

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.

Page 241: Algorithmiin shinjilgee

B y J ia r 17

X 3 J 1 3 Y H H 3 a j j i a H H j i r a j i

X3JT3YMH 3ajuiaH HJiraJi Hb ererAceH (TSMAsrTYYOTHH) uyBaar ererAceH \K3JTHHH’ XYBbH 30B 3C3XHHr UiaJiraX npOIjeCC RDM. X3JI3YHH 3aAnaH AJiraJI

Hb X3JI UIHH5KJI3JIHHH (MOHrOJI, AHrJIH X3JI T3X M3T) caJl6apbIH KOMnblOTe- paap SoJioBcpyynax chctcma Maw qyxaji YYP3rr3H. Mhm chctcma xoep xsjihhm xoopoHH opnyyjira xhhx, 6hihhhh AYP3M 6ojioh Hanpyyjirbir majirax, AMap psir (xYfiHit) xs/ihht “oHJirox” 33p3r chctcmyya GarrAar.

X3JI3YHH 3azuiaH HJirajibiH eep Hsr nyxaji xspsm ss 6oji C++ 33psr “assa tYbihhhh” nporpaMMHJiajibiH X3JI33C “aooa tybiuhhh” acceM6jip scbsji MauiHHbi X3JT (aacHJTJiax koa) YPYY xepBYYJ13*3# anmniarAAar. 9 h3 xepByyjTSJiTHHr tYlta3Tr3A3r nporpaMM xaHraM^KHHr KOMnummop r3A3r. Eha 9 — p 6YJir33p apH(J)MeTHK hjispxhhjijihhh MOAbir Gaiiryyjiax Ye# X3JI3YHH 3aAJiaH HJTrajibTH TajTaap oHJiroJirroH 6ojicoh. X3JI3yhh 3aAJiaH HJiraJiaap mHH>KJT3rH3X T3MA3TTHHH IjyBaar X3p3rJI33H33C Hb XaMaapaH (X3JI ihhhjkjisjia) “eryY-KGsp” scbsji (komhhjuitopt) “nporpaMM” tscsh H3p TQMTjoejiJioop auinrJiax Gojiho.

X3JI3YHH 3azuiaH HiirajTA daapaac-doow 6a doopooc-daaui tscsh xoep YHACSH aprbir anrarjiaAar. .Usspssc-Aoow apra Hb nporpaMMbir (eryyjiGspHftr) inhH5KJ13XJ3.33 3XJ133A tyyhhh xscrnnr, Aapaa T3p xscrHHH H3r xscrnnr T3X M3THHJI3H xaMrnira 6ara H3rac xypTSJi 3aAJiaH aB4 y3Asr. XapHH Aoopooc- A33UI apra Hb uihh^khjicsh xscryYAHwr hsittsh tom xsctyya yyctsh, Aapaa Hb T3Ar33p tom xscryyAHHr Hsrrrsx 6aHAJiaap nporpaMMbir 6YX3AA Hb WHH>KHJlA3r. BHAHHH 9 —p 6yJirHHH apH(J)MeTHK HJI3PXHHJIJI33P MOA YYcr3X aJiropHTM Hb Aoopooc -A33UI aprbir anmrjiaac SaiicaH 6oji 3H3 6yjirs3p A33p33c-Aoom aprbir hjiyy ASJirspsHTYH aBH Y33X 6ojiho.

Xsji ihhhxcjisji 6ojioh komhhjihtopt xhhta3X X3JI3YHH 3aAJiaH Hjiraji HbOYX3JIA33 3H3 HOMOOC raAHa HpHrAaX acap TOM C3A3B GOJIOX Hb OH.JirOM2K.TOJi

244

Page 242: Algorithmiin shinjilgee

XsAsyun 3adjiaH stmcui

IOM. F3C3H X 3 AH ft 4 6 hA 3H3 6yjir33p KOMIIHJIHTOpWH YHflC3H OHJirOJITblTTO M cyjx/iax 6 ereeA y r 6 yjirHHr cyAtfacHaap ©mh©x xscsrr y3C3H 3arBapaap T3MA3IT M0 p xaiix ajiropHTMbir ryn u ssx 3HraHH “ KOMiiHJiflTopbir” YYcr3X 6 ojiom )ktoh 6ojiho.

UporpaiwMMJiajibin xsjihiih #yP3M

AnHBaa nporpaMM^Jiajibiii X3JI A33p ajiAaaryn 3©B nporpaMM Smtoxmhh TyjiA yr riporpaMM^JiaiibiH xsjinnr cypax maapAJiaraTan. 0©pe©p xsjiGsji nporpaMM 6h*ihxa33 xyxanH nporpaMMHJiajiMH xsjihhhxss AypMHiir m©pa©x ecTon. 3hs Hb MoHroJi x3Jinnr (AHrJin 6ojioh 6yca^ 6yx xsjihht) 333Miuhh, ^Fyyji63p 6h*ihxa33 yrnnr ajiAaary# 6 hhhx3 3 c raAHa eryYJi6 3pHHH 30xn0H 6anryyjiajiTbir 6apnMTajmarTan a#HJixaH iom. nporpaMMHJiajiHH xsjiyy^hhhMOpOTOr flYPMHfir c o n t e x t - f r e e AYP3M T3A3r. }K h LLI33JI63JI ©MH0X X3C3ITTanJiSapjiacaH 3Hrnnn n/ispxnHJuinnr toaopxohjiox c o n te x t - f r e e AYPMHHr

A oop ysyy^ 33*

< ex p ress io n > : : = <term> | <term> + < exp ress ion >< te m > : < fa c t o r > | < fa c to r> <term>

< fa c to r > : ( < exp ress ion :* ) | v | (< e x p r e s s io n > )* | v *

jUsapX AYP3M 0MH0X X3C3IT aBH Y3C3H (A*B+AC) D 3CB3JI (1+01) * (0 + 1 ) 33p3T 3HrnnH Hji3pxnnjuinnr toaop xoh jih o . ,H,ypmhhh M©p 6ypnnr 6ym33sd3xyyH 6y ioy opjiyyjiax dyp3M t 3)k H sp jia ^ r . Opjiyyjiax AYP3M Hb ( , ) , + , * , v 33p3r T0rcr0JI0r T3MA3ITYYA33C raAHa < ex p ress io n > , <term >, < f a c t o r > 33p3r T©rcreJi©r 6yc T3MA3nTYAHnr aryyjmar. ( v Hb AypnnH ycs r 6a UHcJjp 6aHHa.) M©h :: = 6a f T3C3H MeTa T3MA3iTYYAHHr anmrjiaAar. | T3ma3IT Hb “ 6y io y ” YHJW3JIT3H a^HJI, XapHH : := yHJIA3JI “ 6YPA3X” 6yiOy " ... 60JI ... IOM.” T3C3H yrrb ir njispxnnjiAsr. )K h ih33ji63Ji xoepAyraap opjiyyjiax AYPMI*Hr £<<term> 6o ji <term> 6y ioy <terra>-HHr AaraJIAaH OpCOH < fa c to r> IOM.” T3>K yHLUnx 6o jih o . A jib H3r, Tyxanji6aji < ex p res s ion > , T0rcr©Ji©r 6yc TSM Asim nr 3X/13X m sM dszm ssp o h u jio h aB^ar. X ap sB A33px AYPM IfHr m©p^©h uyBaaH (nporpaMM 6yioy erYY-^^ap) Aaxb opjiyyjiax aypm hhh 6apyyH TajiA xapraji3ax A3 A uyBaar 3YYH TajibiH y tra a p c o jih x yHJiAJiHHr AaBTaH ryH ipTrsBSJi <ex p res s io n > 6yiOy 3XA3XT3MA3IT3A XYPH3. 3H3 npoiieccb ir X3A3yUH 3ddMH juizcuibiH Modoop HJispxHJijdk 6ojiho. ^Khui33ji63JI 17.1 —psypraap (a * b + a c ) d3HTHHH HJI3pXHHJIJIHHr A33pX AYPM33P HJI3pXH#JIC3H X3JI3YHH 3aAJiaH HJirajibiH MOAbir Y3YY^33.X3JI3yhh 3aAJiaH HjrrajTbiH MOAbir MHrs^K nporpaMMHJiajiHH xsjia amnrJiaxaac raAHa m©h AHrJin xsjihh# ©ryyj^spHHr T3MA3r yr, H3p yr5 Y#-*1 Y1- 33psr 0ryyji63p3YttH 6yru33p 3aAnaH Y3YYJI3X3A anmrjiaAar.

245

Page 243: Algorithmiin shinjilgee

Xsji3yuH 3adjiciH hmcm

r a x aBH Y3H3. Mhmssc SHriiHH HJiapxMHJi^HHr X3JI 6yp eepm iH AypMsap 3aaJiaH uiHHXCHAnar.

X3JI3YHH ia;iJian fuiraji xhhx apra

3 H 3 X3C3IT X3JI3YHH 3aAJiaH HJiraJI XHHX YHAC3H xoep aprblH A33P33C AOOlil

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

x3C3rr aBH y3C3H aypm hhh xyBbA TaH/i6apjiaa.

J^sspx AYpMHfiH opjiyyjiax aypsm SYpniir tyyhhh 3yyh rap TajibiH Tercre/ier 6yc T3MA3IT33P H3pJI3 rAC3 H IlpOUeAYpaap HJI3pXHHJI3H Y3YYJI3X Sojiho. XapHH opjiyyjiax aypmhhh 6apyyH rap TanA opeoH Tercrejier 6yc T3MA3rTHHr xapnui3ax H3pT3H ripoueAypHH AyyAaJiTaap TOflopxoHJino. Tyxaitii6a)i,

< 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

247

Page 244: Algorithmiin shinjilgee

Byjtae 17

3y p a r 17.1. XanaytiH 3aflnaH nnran xmmx m o a

X3JI3YHH 3a;i/iaH ajira ji xhhx 4>yHKUMHH roji axaui 6oji ererAceH TSMAarr

M epeep (nporpaMMaap) xsjbyhh 3aflJiaH suirajiUH moa 6aflryyjiax Sojiomxtoh

3C3XHttr TOAOpXOH JIOX IOM. X3JI3 YHH 3aflJiaH HJITailHH MOAbir A33P33C AOOIUOO

3CB3J1 Aoopooc A33IU33 T3C3H xoep yhacsh apraap Safiryyjiflar. MHracHasp

e re rA c eH TSMAsr Map TyxaiiH xsjihhh xyBbA 36b scsxHftr roAopxoiijiAor.

vKnUI33Jl63JI C++ X3JI A33P

v o i d m a in ( ) }c o u t << " H e l l o w o r l d " ;

{

rsac nporpaMM 6m4B3J[ C++ komiihjihtop yyHHHr oftjiroxryH aJiAaa erex Sojiho. Ymhp Hb C++ 4>yHKirHHH koa Hb {xaa^raap 3X3jdk } xaairraap AyycAar. G epeep xsjiSsji 3H3 npoueccbir Ta AHniHap apHXAaa eryyjiespHHH 3oxhoh

SaiiryyjiajiTbir 6ypyy x3p3ni3B3Ji xapHJinan apHJmarn xyHA iHHb oHJiroMxryii SaiixTaii aAHJrrraH y33ac 6ojiho. 3h3 toxhoahoah TaHTaft xapHJinan apwx 6yH xyHHiir ranbi xsjicsh eryyji63pT x3Ji3yttH 3aAJiaH anraji xhhx KOMmuiaropT3X Y33X 60JIH0.

3apHM 3HrHftH HJi3pxwiiJi3Ji Hb eep xsjihhh xyBbA 36B 6aii* 6ojiho.

>KhLU33Ji63/I A* (B+C) 3HTHHH HJISpXHHJUmftr 6HAHHH TOAOpXOHJICOH A33PX

AYPM33P AapaanaH opcoH xsash i a —hhh apA b s cb s ji c opcoH Saiixbir

HJispxHfiAnar 6oji C++ xsjihh# xyBbA b 6a c —hhh HHiiji63pHHr a —raap yp*hx

246

Page 245: Algorithmiin shinjilgee

ByJm 17

3HTHHH HJTSpXHHJIJTMHH aJIiiaarTOAOpXOHAOr. j],YP3MA TOAOpXOHJIOrACOHOOp factor () npoueflypbirnyyijax yeAopojrrbiHt3MA3itHb ‘( ’ scbsji ycsr(aypsm# v ycr33p toaopxoh JiorAcoH) 6 anx maapjuraraTaH.

<factor> : := (< expression^ | v | (<expression>)* | v*

opjiyyjiax aypm hhh xaprajnax npoueAypw r

fa c to r () {i f (p [j ] = - ' ( ' ) {

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

H3BTPYYA3X3A xyHAP3Ji rapAar. Y 'w p Hb T3Ar33p nporpaMMHJiajibiH xsjiyya (J)yHKiXHHr auiHrJiaxbiH ©mho 3apjiacaH 6anxbir maapAAar.

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

Page 246: Algorithmiin shinjilgee

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.

X3JI3YHH 3aAJiaH Hjiraji xhhx 3AT3ap ajiropHTMbir amuniaH ©mhox 16 —p 6yJI3rT Y3C3H 3HTHHH HJI3pXHHJIJI33C TOAOpXOH 6yc T T M — H r YYc r3X nporpaMMbir yHuinrH TaHA Y^W33e. 0 e p e e p X3JI63JI y r n porpaMMHH op o jitoa3HTHHH HJI3pXHHJI3JI OTeXQA TYYHHHT 3aAJiaiI UIHIDKHJIJK XapraJl3aX ch, next 1, next2 MacCHByyAHH yTTHr T0A0pX0HJI0rA0X IOM.

Page 247: Algorithmiin shinjilgee

B Y-fia r 18

c p a i i j i r n a x a x

©mho Y3C3 H HX3HX aJiropHTMyyfl Hb TYYHfl maapflarflax 3attHaac hjiyy axHTOax xyrauaar 6ornifocroxoji tojijioh aiixaap'i SaflcaH 6oji 3H3 6yji3rr oha acpsrssp, eepeep X3ji6:m maapaarflax 3aftr 6aracraxafl hjiyy aHxaapan xairayynax jom. 3hs coabhhh flop M3H33JUiHHr ((paitabir) “ko/i'ihjioh” rnaxax m i X3MH3X 3apHM aJiropHTMyvfltir Taftji6apjiax iom.

M3fl33Juraftr uxaxax rib icoMnbioTepHftH xaflrajiax TexeepeMXHHH (xaTyy HHCK, Tyy3 t.m) zfyxaraa^TaH yeji Maui 'tyxaji uiaapflJiaraTaft. XapHH KOMttbioTepHHH xaarajiax TexeopoMJKHHH 6arraaMX ape hxsch, yhs Hb xaMflpax TycaM M3fl33Juraiir uiaxax reflsr oftjirojrr Hb 3apHM rajiaap a<i xoJi6onio.ii 6araraH 6oviflor. Tscsh xsahh h M3fl33JiJiHftr uiaxax Hb 3attr \3MH33fl 3orcoxrytt M3,n33JiJniHr xa/irajm 6yft ToxeepeMxm xanaax xyrauaar oaracrax Sojioh M3A33JiJiHHr flaMacyyjiax (TexoepeMX xoopoHfl 6ojioh CYiOK33r33p) xyrauaar xyp/iacrax nyxaji aq xo^6oi'aojitoh.

'PaHJibiH uiaxajir Hb tyyhhh rep/ieec 6yioy Tyxafm (jjaiuiHH oHiyiorooc MX33X3H xaMaapflar. TyxaHJi6an 3yprHHH 6ojioh BHfleo 4>aiuiHH xyBbfl 10% - 30%, TeKCT 4>atabiH xyBbii 20% - 50% , xoepraH 4>aftiibiH xyBbA 50% - 90% xypT3/i maxflar. CoHHpxyyjiaH X3Ji3X3fl 3ap«M TepjiHHH <})aiiJibiH xyBbfl gpeHXHft 3opnyJiajiTMH uiaxax nporpaMMyya tyYhhS xsMxeaar nxscrsx roxHo^fljiyyfl 6aiiflar. (.SjiaHryHa Maui 6ara x3m>k33T3h (paftJibir iuaxcaHaap X3M5K33 Hb HX3Cfl3T. 9H3 Hb UiaxarflCaH cjiaHJI KOflHHJIOJIblH 3apHM H3M3JIT ,vi3ii33/tJTHHr aryyjDK 6aHAaiTaii xoji6ootoh k>m.)

TaMflarTYYflHHH flaBTajiTaap k (w ih jio x

XaMrHHH SHrHHfH uiaxax apra Hb (Jjaitjifl flapaanaH opcoH HXHn TSMflarTYYflHiir 6aracax 3akaap rYftusTrsflsr. >Kh iu 33Ji63JI flapaaxM3fl33JiJiHHr aB't yste.

250

Page 248: Algorithmiin shinjilgee

0atiA luaxax

aaaaaaabbbbbccccccccadd

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.

01111000000000000.0 1 4 13001110000000000000 2 3 13001110000000000000 2 3 13 .001110000000,000000 9 ,3, 13001110111111100000 3 1 1 5001111111111110000 2 12 4001110000000111000 2 3 7''3 3001110000,000111000 . 2 3 7 3 3001110000000111000 3 7 3., 3001110000000111000 ' 2 3 7 3 3001110000000111000 2 3 !■ 3 3011111000001111100 1 5 5 500000000000O000000 18

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:

251

Page 249: Algorithmiin shinjilgee

0auji uiaxax

Hb M6H koahhaojihh xyxatt Msflsajijm ftr aryyjDK 6aiiflar.

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.

3ypar 18.2. 5 nnraaTafi TSMflsrTMMr koadox xoep HH3biH epreTreceH moa

Y h acsh 3aHTHJiaaHaac Tyxaihi raflaafl 3aHriuiaaHA o'ihxaoo 3yyH cajiaaraap

HBSaJi 0, SapyyH cajiaaraap HB6aji 1 recsH yrrbir aBax 6a yycsx 6hthhh (0 6a

1) uyBaa Hb raflaafl 3aHrajiaa 6yphhh xyBbfl flJiraa'raii 6attflar. MMmssc 3H3

apraap maxarflcaH (jjaiinwr 3aflnaxafl yycsx M3fl33Ji3Ji Hb sx ct>aftjrraft aflHJixan

6aiiHa. XapHH HMap moa amHrJiaaaJi xaMraitH caftn maxax B3 rsflsr acyyjrr

3yfi ecoop TaBHrflaHa. Q e p ee p X3Ji63Ji TyxattH cfiaftjibiH xyBbfl yyc3x 6hthWh

253

Page 250: Algorithmiin shinjilgee

Eyjix 18

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2racaH ko# yych3. 3 h s koa Hb 6hxyyahhh AapaanaH opcoH TOOr XOOCOH 3aftraap TycraapjiaH HJispxaracHasp anxnu ax M3A33JiJi33c hxsccsh 6aftHa. T3rB3Jl6HTYYflHHr(01) ( 01010101) (01010100) T3XHaftMHaiiMaapXOiiHOOC hb 6aruJiacHaap 2, 55, 84 rsc3H koaoa xapraii3ax a s c i i tsm asityyassp HJI3PXHHJI3X SoJIOMXTOft. 3H3 TOXHOJIAOJ1# XaMrHftH 3XHHH 8 6HTHftx ryftuasrssryft xscxHftH SHxaftH xoor m s#3x Qaftx maapAJiararaft.

TorTM OJi y p n a ft k o a ih j io j i

KoMiibioTepirtiH chctcm# eprexreceH a s c i1 256 T3MA3rmftr aiirar;iax SereeA T3MA31T 6ypnftr 8 6h t 6yioy 1 6aftTaap HJispxHitaAsr. Hhm33c epAHita M3A33JIJIHHH H3r T3MA3IT HB 1 6aftT X3MX33T3ft SaftAar.

XapsB cjjaHJiA opojin;ox juixaaTaft T3MA3iTHftH to o 256 —aac 6ara 6aftx Hb M3fl3rA3X 6aftBaji H3r TSMflamtftr HJiapxHiiJiax 6h th h h Toor neepyyJix Sojiho. Tyxaftji6aji iuaxax <J>ato hb 3eBxeH tom ycrssc xorxAor xeKCT (Jiaftji X3B3JI A-Z T3C3H HHHT 26 T3Mfl3IT33p aUIHTJiaHa. 26 JUIiaaTaH T3MA3ITHHr TaBaH 6HT33p (25=3 2 ) 6yp3H koahhjiox 6anoMXToft. Gepeep x3ji63jx a -z T3MA3rryyAHftr TaBaH 6HT33p:

A=00000, B-00001, 000010, P=00011, . . . , Z - 11001

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.

M3A33JUIHftH HHX3X KOATOJIOH HiaXCaHBI Aapaa 3X M3A33JUIHftr SyuaaH csp rsax aiim niax raaapAJiara rapHa. IlIaxcaH (Jaftjm r 6ynaaH raprax aBax 3H3 nponeccBir 3adAax raH3. UlaxarAcaH (Jjaftjitir 3aA/iax yeA y r <J>aftjiBiH T3MA3XTHftr KOA'IHJICOH M3A33JI3JI, Tyxaftjl6ajl A33pX XHIH33HMft 5 6hT koahhh TyxaftH msassjisji 3aftjiniryft xaparraft. 3 h s MSAssJisJiryiirssp 6h# 3x (J)aftjiur rapxax aBax HMap'i 6ojioM xryft iom. HftMssc uiaxarAcaH cjjaftji

252

Page 251: Algorithmiin shinjilgee

Eynse IS

nyBaaHbi ypTbir xaMrHHH 6o th h o 6aHJirax MOAbir o jiox Hb 3HA TaBHr^ax roji 3opHJiro 6ojiho. Hhm H3r epoHXHH aprbir 1952 oh a d . Huffman aHX rapac HpcsH

6©r00A YYC3X KOAbir Huffman koa rsAsr.

3H 3 aJiropHTMbIH 3XHHH aJIXaM Hb M3J133JI3JIA OpCOH JIJiraaTaH T3MA3T- tyy^m hh aBTar/xcaH Toor o jiox iom. EpeHXHH toxh o jiao jia <f>aHJiA 256 TSMAsrr opo jiu ox 6ojiom>ktoh T3B3JIT3MJI3IT 6yphhh AaBTarAcaH TOOT

uns i gned 1ong f r e q [2 5 6 ];

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 ]+ + ;

^ 3 3 px KOAHH YP AYHA f r e q MaCCHBblH aBaX yTTbir 30BX0H S T3MA3IT M©PA qpCOH T3MA3ITYYOTHH XyBbU, AO Op Y3YYJIJI33« s T3MA3rT MOpA OpOJIUOOTYH T3MA3rTYY^HHH AaBTajrr 0 6aiiHa.

A B C D E F G H Z k 65 6 6 6 7 68 69 70 71 72 90

f r e q [k ] 3 3 2 1 1 1 5 2 2

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

Page 252: Algorithmiin shinjilgee

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.

0 p reT rec© H moaht T3MA3rTYY^MHH (18.3 —p 3yprbiH 3aHrnjiaa 6yphhh xapa jiA aa TaBHTAcaH ) AaBTajiT A33P YHA3CJI3H 6a H ryy jiA a r. A o t o o a 3aHrHJiaaHbi xapajiAaa TaBHrAcaH too Hb tyyhhh xoep A3£ 3aHrHJiaaHbi AaBTaJITHH HHHJI03P33P TOAOpXOHJIOrAOHO. BHAHHH H3BTpYYJI3X nporpaMMbiH ep reT receH moa Hb T3MA3ithhh AaBTajiTbir aryyjiaxryw ynnp18.3 —p 3yparr AaBTaJiTHH Toor 3aHrHJiaaHbi raAHa aypcj13b. 0pr©Tr©c©H moahh HaB4 6y ioy raAaaA 3aHrHJiaaHaac 6ycaA aotooa 3aHrHJiaa Hb HMarr 2 A3A 3aHrHJiaaTan 6aHAar y4Hp ep re rre co H moaht MaccHBaap xaji6apxaH H S B T P Y Y ^ 60JIH0. 0 p r© T receH MOAbir HJI3pXHHJI3X H tree MaCCHBblH 3jieMeHT Hb l 6a Rorch T3C3H 6yx3Ji TOOHyyAaac toitox 6H4Ji3rHHr aryyjiHa. M oahh aotooa 3aHrHJiaaHH xyBbA l Hb 3yyh A3A 3aHrHJiaa 6aHpJiax hhackc, Rorch Hb 6apyyH A3A 3aHrHJiaa 6aHpjiax HHAeKCHHr xaAra^Ha. XapHH T3MA3rrYYA Hb 3©BX0H HaBH 6yioy raAaaA SaHnuiaaHA 6aiipjiax ynnp raAaaA 3aHm jiaaHH xyBbA Rorch Hb maMdasmuua xaArajiax 6 a l Hb n il 6yioy — 1 yrrb ir (A3A 3aHTHJiaarYH y4Hp) aryyjiHa. 0pr© TreceH MOAbir Aapaax Huf fmanTree KJiaccaap toaopxohjuioo.

#define n i l (-1 )

255

Page 253: Algorithmiin shinjilgee

Eyjiae 18

c l a s s H u f f m a n T r e e {

s t r u c t n o d e { i n t L , R o r C h ; } ;

n o d e * H t r e e ;

i n t n , r o o t ;

p u b l i c :

H u f f m a n T r e e ( c o n s t u n s i g n e d l o n g * f r e q ) ;

- H u f f m a n T r e e () ( d e l e t e [ ] H t r e e ; }

i n t N e w N o d e ( i n t L , i n t x ) {

H t r e e [ n j . L = L ; H t r e e [ n + + ] .R o r C h = x ;

r e t u r n n - 1 ;

!i n t g e t r o o t ( ) ( r e t u r n r o o t ; }

f r i e n d v o i d t r a v e r s e ( c l a s s H u f f m a n T r e e & ,

s t r u c t C o d e T a b l e * , i n t , u n s i g n e d i n t c o d e = 0 , i n t l e n = 0 ) ;

} ;

H u f f m a n T r e e K jia c c H H 6 a iir y y j ia r li (JiyHKH h l e p r e r r e c e H M O A H r t3 M A 3 t-

t y y A h h h A a B T a jiT A 3 3 P Y H^ 3C-fr3H Y Y c r 3 H 3 - B a f t r y y j ia r H cfiyH K JtH H H

a p ryM eH TaapT3 M fl3 rTYY fln iiH A aB T a jT T u rT oo jicoH f r e q M accH B H rAaM >Kyy;iH a.

G p r e T r e c e H m o a y y c is x aJiropHTM H b ( h e a p S y t u h h h 3 a p w a a p a a a o u ia x )

3P 3 m 6 s t A a p a a j i j iu r a u in r a a n a . 8 — p 6 y ; ir 3 3 p h e a p S yT H M H r a p s M S a T

AapaanarrA a u m r a a x S o j io x T y x a ii A yp tA a rA c a H S h jis s . ^ a p a a x H u f f m a n T r e e

S a ftr y y jia r a 4>yHKH3A a i im r a a x p q s p s m S s t a a p a a ju iw r 3 H3 6 yJirH ftH T e r c r e j iA

T O A o p x o to o x 6 o j ih o . G p r e T r e c e H m o a YYc r a x B a flr y y jia r1! <|>yHKHHHH k o a h t

AOOp Y3YYM33.

H u f f m a n T r e e : :H u f f m a n T r e e ( c o n s t u n s i g n e d l o n g * f r e q ) {

H t r e e = n e w n o d e [ 5 1 1 ] ;

n « 0 ;PQ .<item > p q ( 2 5 6 ) ; / / S i z e o f p r i o r i t y q u e u e

f o r ( i n t j = 0 ; j < 2 5 6 ; j + + )

i f ( f r e q [ j ] ) p q . i n s e r t ( i t e m ( f r e q [ j ] , N e w N o d e ( n i l , j ) ) ) ;

i t e m t \ , t 2 ;

i f ( p q .e m p t y ( J ) c o u t « "E m p t y i n p u t f i l e . " « e n d l ;

e l s e {

f o r ( ; ; ) {

t l = p q . r e m o v e ( ) ;

i f ( p q . e m p t y O ) b r e a k ;

t 2 - p q . r e m o v e ( ) ;

p q . i n s e r t ( i t e m ( t l . f r e q + t 2 . f r e q ,

N e w N o d e ( t l .p t r , t 2 . p t r ) ) ) ;

)r o o t jjjj t l . p t r ;

{>

O a ftJ iA 256 T3 M A 3 IT o p o jm o x 6 o j i o m x t o h T3B3JI2 56 raA aaA 3aHrHJiaa SyxH ii

Page 254: Algorithmiin shinjilgee

cpniui uiaxax

epreTrceH moahh hhht aaHrmiaaHH too hb 2 5 6 *2 -1 = 511 —sac xarpaxrYS yqpaac MOAtir H tre e [5 il ] MaccHBaap Toiiopxowji* 6ojiho. Moa YYcraxA^3 3XJI33A T3MA3rrYYAHHH AaBTajiTbir 3p3 M63T Aapaajiajm opyyjiax 6ereeA Aapaa hb T3MA3ITYYAHftr moahh raAaaA 3aHrHJiaaHA opyy/wa. 9p3M09T Aapaajiafl hb xaMrHHH eHAep 3P3M63T3H 6yioy xaMi'HHH hx yrrar axanac rapraaar. XapHH 4>aiiJi uiaxax Huf fman-HHH ajiropHTMA xaMrHHH 6ara AaBTa/rrbir 6yioy xaMrHHH 6ara 3P3m6st3H sjreMeHraftr 3X3jrsc raprax uiaapA/iaraTai-i 6aiiAar. 9h3 3ep>uiHHr iuhhasx irar apra 6oji 3P3m6st flapaajuibir xaMmftH 6ara 3P3M63T3H 3JieMCHT 3X3^* rapraxaap 6o;tron eepywjix 6ojiho. T3bi 6ha 3HA 3P3M63T AapaajuiHH axcHiuiax rftpHMfl eep4Ji8JiT XHHJUYiireap aoXHiiyyjiax Sojiho. 0epeep X3Jt63Ji Huffman-HHH ajiropHTMA aumniacaH pq 3P3m6st Aapaam/i aMarr xaMrHHH hx 3P3M63T3H sJieMeiiTHiir 3X3jdk raprax 6a xapnH tyyha xaAraaarAax Aapaax item 6ytlihhh /mxhh TOAopxoiiJiorAcoH int operator>(item) 4>yHKii33pAaspx 3ep4JiMHr3oxmiyy;iax 60JIH0 .

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

item Tepejrreii xoep xyBbcaniHiiH xoopoHA > xapbuyy/iax YHJizuiHiir xhhxsa AyyAarAaH aautraax, < xapbuyyjiax YftJiAJTwftr XHHAsr. Hnr3CH33p 3H3 cfiymai Hb > xapbuyyjiax yhjia'ihhh acpsr yp ayht (yhsh 6oji xyryinr, xyflan 6oji. YHSHHiir) 6yriaax 6a yjiMaap item Tepejrreii ererAJiniir 3psm6st AapaajiajiA xaAranaxaA xaMrHHH 6 ara 3P3M63T3H Hb 3X3Jiac rapaxaap soxhoh 6aHryyjiarflflar. 0epeepxan63.il pq 3psm63tAapaajiajia itemTepejiTaft ererxie.11 xaAra;iax yeA PQ KJiaccHH remove o 4>yHKU33p xaMrHHH hx yTra 6hui, xaMrHHH 6ara yrra sxsjek rapHa. 9 h3 30XHiiyyjiajiTbir yr 6YJirHiiH TercreJiA Y33X pq 3p3M63T AapaaiuibiH xscrssp ASJirepsHryH Taiui6apjiaHa.

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

Page 255: Algorithmiin shinjilgee

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

Baiiryyjiarq (J>ynKHHHH flapaaiHHH for AaEnajrraap epreTreceH MOAHr iiaB'Miyyjjaac 3XJi3H Aoopooc Assures 'inrJiSJifl 6aiiryyjiAar. YyHHH ryjm 3P3m 6st Jiapaajuiaac xaMiHHH 6ara xoep AaBTaJiThir rapraac, TSArsspT xapraji3ax sx aanrajiaar yycrsHS. UInH33p yyccsH sx 3aHnuiaaHbi AaBTajmiH yrra hb xoep asa 3aHrmiaaHH AaBTajrrtiH yrruH HHluiSspssp TOAopxoHJiorAox S ereeA TyyHMiir Men 3psm 63t AapaanajiA opyyjiHa. 18.5 —p 3ypraap uihhs 3aHrHJiaar yycrscsH 6aiiAJiHr xapyyjuiaa.

freq ptr3P3m6st flapaanan | 2 i f 1

L

1RorCh

3

| - |D|

L RorChH e l

L RorCh

3 y p a r 1 8 .5 . TaM AarrYYflniiH fla B T a /rra a p m o a 6 a ( ir y y n a x

Hhmssc f o r AaBTajiTOH ajixaM 6ypr spsM63T AapaajuiHH ererAaJi Hsrssp Baracax 6a epreTreceH moaoha hihhssp nsr (sx ) 3aHnwaa hsmstasx 6 o jih o .

JHaBTajrr AyycaxaA spsm6st Aapaajiaji xoocoh 6 ojiox 6a 6yx 3aHrHJiaar aryyjiax H3r tom moa YYCH3.

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.

258

Page 256: Algorithmiin shinjilgee

0auA luaxax

GpreTreceH moa YYcr3GH33P tsmasityyahhh Huffman KOAbir rapraH aBax 60JI0M3KT0fi 60JIH0 . Huffman KOAbir HuffmanTree KJiaccT 3apJiarAcaH traverse () HaH3 cjjyHKHMHH TyCJiaMJKTaHraap TOAOpXOMJIHO. Huffman KOAbir apaBTHH toojioau tooh yrraap hjispxhhjisx yeA 001, 01, 1 recsH Huffman KOAyyA K*HJiX3H 1 rscsH yrra 6o;iox ynpaac Huffman koahh yprar (Shthhh Toor) M6H caHax 6aftx uiaapAJiaraxaft SaftAar. 9hs YHJWMHr Aapaax CodeTable 6yTH33p TOAOpXOHJTLe.

struct CodeTable { unsigned code, len; };

traverse () cJpyHKii hb peKypc amHniaH moaoop ryiixA33 raAaaA 3aHriuiaaHA 01HX 6ypT H3rT3MA3ITHitH Huffman KOAbir TOAOpXOHJIOH t KOAblH XyCH3IT3A XHHH3. t KOAHH XyCHSITHHr

CodeTable t[256]; // t KOAHH xycH3IT

T35K TOAOPXOHJIOX 6a traverse () 4>yHKHHHH apryMeHTaap AaMxyyjma. traverse () (J)yHKHHHH KOAbir AOOp Y3YYJIJI33.

void traverse(HuffmanTree &Tr, CodeTable *t, int p, unsigned code, int len) (

i f (Tr.Htree(p).L == n il) (unsigned char ch = Tr.Htreefp].RorCh; t[ch].code ■= code; t [c h ]. len = len;// KOAbir X3BJI33C y3yy^3x 3opanroop Aapaax xoep Mep hsmjiss. cout « ' 'c h : " << ch « " code: " « code; cout << " len :" << len « endl;

)else {

code « “ 1 ; len++;traverse(Tr, t, Tr.Htree[p].L, code, len); traverse(Tr, t, Tr.Htree[p].RorCh, code | 1, len );

)) (

0MH6 aBcaH AAABBBCCDEFGGGGGHHZZ T3MA3IT MepHHH T3MA3rTyyAHHH Huffman KOAbir TOAopxoH/iox XHIU33 nporpaMMHr Aapaax KOAHH X3CT33P Y3yyjui33.

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 " ;

Page 257: Algorithmiin shinjilgee

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 ;

traverse (T r, t, T r. getroot( ) ) ;

} M9ii3ct Hb Huffman koa yYcr3X ajiropHTMbir H3nT3HAyrHSBSJi Aapaax anxMyyAXMHTA3H3.

(1 ) T 3 MA31'TYYAH HH AaBTaJlTblT TOOJIOX(2) Hu f fman MOA yycr3X(3) T 3MA3FI7 YAHHH Huffman KOAbir TOAOpXOiiJIOX

Bha Huffman KOAbir rapraH aBCHaap (fjawjibir rnaxax 6ojiom>ktoh 6ojijioo.>KhLLI33Ji63JI A33PX AAABBBCCDEFGGGGGHHZZ T3MA3IT M0 pHHr T3MA3ITYYAHHH xapraj!3ax Huffman KOAOOp COJIbaC 6htIB3JI

101101101111111111100100100110101101111000101010101001001000000

T3C3H 6 htyyahhh nvBaa YYcr3H3. 3h3 UYBaar HaiiM HaHMaap 6yji3rA3H xapraJT3ax a sc ii TSMAsrTSsp cojib^k rnaxax (J)aHJiA 6m4H3. HHrsac 8 6HT33p 6yji3Di3H cojihx yeA xaMrniiH cyyjihhhh X3C3ir 8 6ht xypssryii toxhojiaojia ty y h h h 6 mthhh Toor mqh xaArajiax x3p3rT3H 6©roeA 3H3 lib uiaxcaH 4>aiijibir GyuaaH 3aAJiaxaA awnrJiarAAar.

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.

3p3Ni63m dapaanon

3p3M63T AapaajuiHH Tyxan epeHXHH oHJiroJiTbir 6ha 8 — p 6yJir33C ojdk aBcan 6hji33. 3ha toaopxohjiox pq 3p3M63T Aapaajiaji Hb heap erorAJiwHH 6ytuhhh 3apMMaap axHJiJiaHa. TbrB3Ji 6ha heap ereriuiHHH 6yrmiHr 11 — p 6yjir33p moh cynajican 6hji33. 3ha toaopxohjiox pq 3p3M63T Aapaajiaji Hb heap

260

Page 258: Algorithmiin shinjilgee

0auji uiaxax

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

Page 259: Algorithmiin shinjilgee

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

Page 260: Algorithmiin shinjilgee

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 ;

}

flapaax <J>yHKH33p remove ( ) <J)yHKUHHH KOAbir Y3YY*11133-

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

Page 261: Algorithmiin shinjilgee

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

Page 262: Algorithmiin shinjilgee

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

5ypr xypsx 3aM ojijio>k 6aftBaji yr rpa({)Bir xoji6oadcon rpacjj tshs. XapsB rpacj)

h b xoji6oraooryii 6oji ca/raHrHJi a s a rpacfjyyaaac TorTflor. JIjiraaTaii

opoimvyziaac Torrox 3aMbir 3HraiiH 3aM r3H3. (bafegac hb 3HraiiH 3aM 6hui.)

XspsB 3HFHHH 3aMBiH TercreJtHHH 3aHrHJiaaHaac sxhhh 3anrnjiaanA xypsx ipM3r (xepui 3aHrHJiaa 6oji) ojihboji yyHHiir Toiipor 6yioy AaBTajnraii 3aM

T3H3. )KHtn33Jl63JI A F E G A Hb flaBTaJITTaii 3aM 0OJ1HO.

laBTajiT arvyjraaryH r p a $ H r m o a t s h s . 0 e p e e p xsjiS sji r p a4>bm 6 y x opoiir

xypsjiHxyiiH H p M s r y y A s a p x o /t6 o c o h (AaBTajnraii 3 a M aryyjiaaryii) A 3 A

pa(|)bir M O A ( s p a n n i n g tree) T3H3. XoJlSoraooryii MOflyyflbir O H T3JK

H3pji3A3r. )K hlli33 ji63 ji 19.1 —p 3ypraap y3yy^c3H rpacjbbiH (t o m xscsr) a b

ac a f f d d e e g rscsH HpMaryYflHHr aryyjiax flsu rpa<J> H b m o a i o m . X s p s B 3 h a

ior H p M 3 r h 3 m 63 ji AaBTajiTTaH 3 a M yycH3.4-p 6yjir33c 6 h a v 3aHra;iaa 6yxHii

m o a H b v-i xojr6oocToii 6oJioxwr m s a c s h . X s p a B rpaij) H b v opoitroft, v-l —

33C 6arayii HpMsrreii 6 oji xojiSorAcoH 6aii>K HaAaxrytt.

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

Page 263: Algorithmiin shinjilgee

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

M a m 'lyxaji. © e p e e p xsjiS sji opyy/iax flapaafljxaac x a M a a p q xcarcaajixafl o p o x

6aftp;iaJi TOflopxoiiJiorflOHo. M h m a MpMsryyfl x e p m xarcaajrrafl o p c o H

Page 264: Algorithmiin shinjilgee

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

Page 265: Algorithmiin shinjilgee

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 .

Page 266: Algorithmiin shinjilgee

. B y J ia r 2 0

r p a $ a a p r p r a a p r y y #

XoepTbiH MOAbir'cyAJiax yeA moahh yhacsh 3aHnuiaaHaac 3XA3H HMap H3r flapaajwaap 6yx 3aHTHJiaaHA xypsx ajiropHTMyyATan TaHHJiitcaH 6hji33. Hhm acyyaAbir rpac|)HH xyBbA xspxsH iiiHHA3XHHr 3H3 xscrssp cyzmax 6ojiho. Yyhtsh yjumaa^ Aapaax acyyzyiyyn;, TyxaHJi6aji rpatj) xoji6orAcoH scsx, yryH 6oji XH4H33H cajiaHTHA A3A rpa4> 6anraa, rpacj) Hb AaBTaJiT aryyjicaH scsxhht XHJi6apxaH ihhMasx 6ojiho. 3h a 6ha ryHHii xaHJiT 6a epreHHH 6yioy TYBiiiHHrHHH xaHJiT T3C3H xoep apraTaii TaHHJiuax 6ojiho.

ryHHH xaHJiT

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

269

Page 267: Algorithmiin shinjilgee

m m

Byjide 20

TOUOpXOHJDK 6 OJIHO.

FyH HH xawjiTbTH aJiropHTM Hb HMap Har 3aHnuiaaHaac sxjish tyyhhh xeprn

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-

(A)

3ypar 20.1. TyHm m m m (peKypcT)

Tpa(j)biH xepui >KarcaajiTbiH xyBbjj ryHHH xaHjrrbiH apra Hb v opoH 6a e lipM srsac luvraMaii xaMaapajrrau xyrauaa waapzmar. OpoH 6ypT ohhxaoo 1 i'3C3H yrra ojitoho. Fpacf)bw wpM3r 6yp xoep ynaa ToaopxoHJiomox y*mp xepm karcaaJiTaji 2E 3aHtHJiaa Gatina.

270

Page 268: Algorithmiin shinjilgee

rpatpaap zyux cipzyyd

rpa4>MH xepiu MaTpHULiH xyBbA d f s ( ) 4>yHKm iiir Aapaax 6 aiiAJiaapTOAOpXOftJIHO.

v o id d f s ( i n t k) { in t t ; .v i s i t e d f k ] = 1 ; f o r ( t= 0 ; t<V ; t+ + )

i f ( a [ k ] [ t ] ! * 0 ) i f ( ! v i s i t e d [ t ] ) d f s ( t ) ;

!

TyxaHH opoHHbi xepm opoHHyyAaA ohcoh scsxHiir uiajiraxAaa AaBTajiT auinrjiaH MaxpHUHH MepHHH xyBbA xhhhc 6aHHa. Tpa^JbiH xepui MaTpwubiH xyBbA ryHHH xaHJiTHH ajiropHTM Hb 0(n2) xyrauaa uiaapAaHa.

d f s ( ) 4>yHKUHHH peKypcbir CTeKssp cojibac 6ojiho. Gm hbx 6yJirYYA33P 6ha pexypcbir ctck amHniaH peKypcryH 4>yHKU 6oJirox xsa X3A3H >kmui33T3h TaHHJIUCaH 6HJI33. 3HA 6HAT3AT33PHHH H3r aAHJI 7 —P 6yjI3rT TOAOPXOHJICOH CTeKHHH stack 3arBap K/iaccbir aurarjiax 6 ojiho.

Stack<int> stack;

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.

Page 269: Algorithmiin shinjilgee

Eyjiaa 20

TyBQiHHraHH xaiijiT

9h3 apra Hb moaoha TYBunmraap ryftx anropHTM tin aAHJi Queue Aapaanaji amHraaAar. 3hs ajiropHTM hb HMap Hsr 3aHrHJiaaHH 6yx (onooryH) xepni 3aHfHJiaaHA oucohh Aapaa AapaaHniiH aJixaMA uiHJDKAsr.

TyBiuHHraHH xattKTUH a/tropHTMur Aapaax bds () 4>yHKU33p Y3YY-®133-

void b fs (in t k ) {

node *t;q u e u e . i n s e r t ( k ) ;

w h i l e ( ! q u e u e . e m p t y ( ) ) {

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

Page 270: Algorithmiin shinjilgee

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

Page 271: Algorithmiin shinjilgee

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-

3ypar 21.1. >Khht3M HMmanryii rpacf)

vKhhtsh rpa4>Bir xeprn MarpHU 6ojioh xarcaanTaap HJi3pXHitii3Xfl33 0 6a 1 rscsH JioraK yTrbiH opoHfl XHHr HJispxHHJisx 6yx3/i Toor auiHmaflar.

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

Page 272: Algorithmiin shinjilgee

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

Page 273: Algorithmiin shinjilgee

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

Page 274: Algorithmiin shinjilgee

> 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.

EpeHXHH toxhojiaojia er©rAc©H x opoiirooc rpa4)MH 6 y ca ^ opo ii 6 ypx1 ©*£hx xaMrHHH 6orH H o saMyyAHr toaopxohjek 6 o j i H ° . Fpacpbr^ o r 0 rAceH o p o n r o o c

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

3 h 3 acyycpibir 6 h a 3p3M633p x a iix apraap mi-i^A3^ 6 ° J1H o . 0 f© rA c© H x opo idA

xaM rH H H o iip o p o iir co H ro x 3aMaap MOAbir 6 a a ry y j iA a r . a p ra Hb ©Mh©

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

3P3M63T AapaanajiA opA or. X s p s B TyxaiiH o p ™ ©mh© Hb a p ^ M G sT A ap aa jia jm

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

Page 275: Algorithmiin shinjilgee

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 .

A * IQ

CJ 2

M 2H 3

5

Fj2 (jDj3

3 I I 4 Q D 4 U S 5 H 5

6G ]5 [j]6 [K ]7 fT~|g

I s 0 8

3ypar 21.6. XaMrniiH 6orMHO 3aMbiH moa 6awryynax yemu ap3M63TAapaa/inbiH aryynra

3 ypraac xapaxaA 3p3M63T AapaajiajiA h x a M r a ta cyyJW 6a im a . O e p e e p

X3Ji63Ji a o p o H ro o e x a M r a to x o ji 3aHA h o p n iA o r rs csH y r 6 e r e e A a o p o n ro o c

H OpOMA XYP3X xaMrHHH 6orHHO 3aM Hb AFEGH T3C3H 8 ypTTaH 3aM 6aHHa. A

o p o ttro o c 3XJI3H H OpOHA OHHX 0©p HMap H 6 0 rHH0 3aM OJIAOXryH.

278

Page 276: Algorithmiin shinjilgee

HndeKc

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

rapajiT Hb XH3raapJiarAMaJi 121, 141 opojrr Hb XH3raapjiarAMan 121

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

Aapaajuibir jtcarcaajrraap mispxHHJisx 117-120 Aapaajuiwr MaccHBaap mispxHifc/isx 113-117

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

Page 277: Algorithmiin shinjilgee

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

280

Page 278: Algorithmiin shinjilgee

Hndeicc

T3MA3IT Mep xaiix 222- 3HTHftH apra 223-225 KMP ajiropHTM 225-230 Boyer-Moore ajiropHTM 230-235

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

xyBaax apra 214 Hyrajiax apra 216KBaApaT 33psr A3Buiyyji3X apra 216

hash xanTHHH 3©pHJiniir 3oxHuyyjiax 217

281

Page 279: Algorithmiin shinjilgee

HndeKc

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

282