Algoritmusok és adatszerkezetek vizsgajegyzet

download Algoritmusok és adatszerkezetek vizsgajegyzet

of 26

description

Algoritmusok és adatszerkezetek vizsgajegyzet

Transcript of Algoritmusok és adatszerkezetek vizsgajegyzet

Algoritmusok s adatszerkezetek I.Murncsik Sebestyn 2011. december 28.

vizsgajegyzet

I

wurnsik eestynD wwwFdekormeloFhu

P

TARTALOMJEGYZK

TARTALOMJEGYZK

Tartalomjegyzk1. Aszimptotikus jellsek 2. RendezsekPFIF PFPF PFQF PFRF PFSF PFTF feszr rendezs F F F F F F F F F F F F F F F F F F sszefsl rendezs F F F F F F F F F F F F F F F F qyorsrendezs @vomutoE vgy roreEfelosztsslA zmllrendezs F F F F F F F F F F F F F F F F F F dix rendezs F F F F F F F F F F F F F F F F F F F idnyrendezs F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

5 6T T T U U U

3. Partciszm kiszmtsa

QFIF ekurzv lgoritmus F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QFPF ekurziEmemorizls F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QFQF hinmikus progrmozs F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RFIF wtrixszorzs prolm s rszprolmk de(nijD kzttk lev sszefggsek RFPF rtizsk prolm s rszprolmk de(nijD kzttk lev sszefggsek F F F RFQF veghossz kzs rszsorozt prolm s rszprolmk de(nijD kzttk lev sszefggsek F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F SFIF eremfolD eremfeD orfolD orfD rior orfolD orf mveletek F F F F SFPF erem dttpus megvlstshoz hsznlht dtszerkezetek F F F F F F F SFQF or dttpus megvlstshoz hsznlht dtszekezetek F F F F F F F F F SFRF orozt sztrkt dttpus fvtD uiolvsD wdost mveletei F F F F F F F SFSF vnD urln sztrkt dtszerkezetek de(nii F F F F F F F F F F F F F F SFTF xem rendezett f de(nij p fggvnnyel F F F F F F F F F F F F F F F F F SFUF endezett f sztrkt dtszerkezet de(nij f@iA fggvnyekkel F F F F F SFVF p sztrkt dtszerkezet de(nij F F F F F F F F F F F F F F F F F F F F F SFWF p dtszerkezet kpsolti tmD kpsolti ln rzolsi F F F F F F F F SFIHF p dtszerkezet els(EtestvrD els(EtestvrEp rzolsi F F F F F F F F SFIIF ekurzv preorder fejr lgoritmus F F F F F F F F F F F F F F F F F F F F F SFIPF xemrekurzv preorder fejr lgoritmus F F F F F F F F F F F F F F F F F F F SFIQF zint szerinti fejr lgoritmus F F F F F F F F F F F F F F F F F F F F F F F F SFIRF uup dtszerkezet de(nijD wximumEuupol F F F F F F F F F F F F F SFISF uuprendezs lgoritmusD weswwEuegyv lgoritmussl egytt SFITF isemnykivlsztsi prolm de(nijD megold lgoritmus F F F F F F F F SFIUF yptimlis pre(x kd prolmD ru'mnEkd szerkeszt F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F kpsolt F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

8V V V

4. Problmk, rszproblmk dencija

W IH IH

9

5. Adatszerkezetek

12

IP IP IP IQ IQ IQ IQ IR IR IR IR IR IS IS IT IT IU IV IV IV IW IW IW IW PH PH PH PH PH PI PP PP PP

6. Grfok

TFIF upsoltmtrixD llist grfEreprezentikD idignyek F F F F TFPF tD legrvide t de(nij F F F F F F F F F F F F F F F F F F F TFQF zlessgi keress F F F F F F F F F F F F F F F F F F F F F F F F F F TFRF wlysgi keress F F F F F F F F F F F F F F F F F F F F F F F F F F TFSF rjelezsi ttel F F F F F F F F F F F F F F F F F F F F F F F F F F TFTF lek osztlyozs @flD elrelD visszlD keresztlA F F F F F F F F TFUF opologikus rendezs de(nijD krmentessg s visszlek TFVF irsen sszefgg komponensek s trnszponlt grf F F F F F F TFWF irsen sszefgg komponenst elllt elvi lgoritmus F F F F F TFIHF winimlis fesztf prolmjD vgsokD iztonsgos lek F F F TFIIF uruskl lgoritmus F F F F F F F F F F F F F F F F F F F F F F F F F TFIPF rim lgoritmus F F F F F F F F F F F F F F F F F F F F F F F F F F TFIQF hijkstr lgoritmus F F F F F F F F F F F F F F F F F F F F F F F F F TFIRF vegrvide utk felskorlt s konvergeni tuljdonsgi F F TFISF pord fellmn lgoritmus F F F F F F F F F F F F F F F F F F F F F F TFITF ploydErshll lgoritmus F F F F F F F F F F F F F F F F F F F F F

18

wurnsik eestynD wwwFdekormeloFhu

Q

TARTALOMJEGYZK

TARTALOMJEGYZK

7. KeresfkUFIF UFPF UFQF UFRF UFSF UFTF UFUF

kF elem kivlszts lineris iden F F F F F F F F F kF elem kivlszts kup dtszerkezettel F F F F winimlis s mximlis elem egyttes kivlszts finris keresf de(nijD ueres lgoritmus F F F kvetkez elem megtlls inris fn F F F F feszrs inris keresf F F F F F F F F F F F F F rls inris keresfn F F F F F F F F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

24

PR PR PR PS PS PT PT

wurnsik eestynD wwwFdekormeloFhu

R

1 ASZIMPTOTIKUS JELLSEK

1. Aszimptotikus jellsekO-jells. O(g(n)) = {f (n) : (c, n0 0)(n n0 )(0 f (n) cg(n))} -jells. (g(n)) = {f (n) : (c, n0 > 0)(n n0 )(f (n) cg(n))} -jells. (g(n)) = {f (n) : (c1 , c2 , n0 > 0)(n n0 )(c1 g(n) f (n) c2 g(n))} o-jells. o(g(n)) = {f (n) : (c > 0)(n0 > 0)(n n0 )(0 f (n)) cg(n)} -jells. (g(n)) = {f (n) : (c > 0)(n0 > 0)(n n0 )(cg(n) f (n))}

wurnsik eestynD wwwFdekormeloFhu

S

2 RENDEZSEK

2. Rendezsek2.1. Beszr rendezsBESZRRENDEZS(A) For j=2 to hossz(A){ kulcs:=A[j]; i:=j-1; while (i>0 s A[i]>kulcs){ A[i+1]:=A[i]; i:=i-1 } A[i+1]:=kulcs }

2.2. sszefsl rendezsSSZEFSL-RENDEZS(A, p, r) if(pi) { print '('; KIIR(i, S[i, j]); KIIR(S[i,j]+1, j); print ')'; } else print A(i);

wurnsik eestynD wwwFdekormeloFhu

W

4.2 Htizsk problma s rszproblmk dencija, a kzttk lev sszefggsek 4 PROBLMK, RSZPROBLMK DEFINCIJA

4.2. Htizsk problma s rszproblmk dencija, a kzttk lev sszefggsekigy dott htizsk trgykt krunk pkolniF edott n trgyY minden trgynk vn egy f (i) fontossgi rtke s egy s(i) slyF e htizsk sszesen mximum S slyt pkolhtunkF ez s(i) s S rtkek egszekF e lD hogy gy vlsszuk trgyktD hogy zok lvezeti rtke mximlis legyenF peldt kivlsztni trgyknk olyn rszhlmztD melyekre z sszsly nem hldj meg S EtD s mximlis z sszfontossgF he(niljuk z F (i, W ) fggvnyt minden i = 1, . . . nD W = 0, . . . S rtkreF iz fggvny zon htizsk prolm optimlis fggvnyrtkt dj megD melyen trgyk listj z els i trgyt trtlmzz s htizsk rtke W F ikkor kezdeti rtkekre F (1, W ) = f [1], h s1 W s H klnenF wsrszt kvetkez rekurzi teljeslF

F (i + 1, W ) = max{F (i, W ), f [i + 1] + F (i, W s[i + 1])}D h s[i + 1] W D tov

F (i + 1, W ) = F (i, W ),h s[i + 1] > W F izen kt eset mximum dj z optimlis lfggvnyrtketF

Az algoritmus.

HATIZSAK for(x=0 to s[1]-1) F[x, 1] = 0; for(x = s[1] to S) F[x, 1] = f[1]; for(i=2 to n) { for(x=0 to S) { F[x][i] = F[x][i-1]; if( {s[i]0) { while (i>=1 && F[x][i] == F[x][i-1]) { i = i-1; } print 'i'; x = x-s[i]; i = i-1; }

4.3. Leghosszabb kzs rszsorozat problma s rszproblmk dencija, a kzttk lev sszefggsekigy sorozt kkor rszsorozt egy msiknkD h l elemeinek elhgysvl megkphtF A feladat. ut sorozt X = (x1, . . . xm ) s Y = (y1, . . . yn ) leghossz kzs rszsoroztnk meghtrozsF Rszproblma. Xi s Yj leghossz kzs rszsoroztF ez vu legyen c[i, j]. xyilvnvln c[0, j] = c[i, 0] = 0.

Rekurzv sszefggs.

wurnsik eestynD wwwFdekormeloFhu

IH

4.3 Leghosszabb kzs rszsorozat problma s rszproblmk dencija, a kzttk lev 4 PROBLMK, RSZPROBLMK DEFINCIJA sszefggsek c[i, j] = 0,h i = 0 vgy j = 0 c[i 1, j 1] + 1D h xi = yj max{c[i 1, j], c[i, j 1]} egykntF

Algoritmus.

c[i, j]Ehez hsznljuk c[i, j 1] s c[i 1, j] rtkeketD ezeknek kell meglenni c[i, j] rtk kiszmtsnlF gy helyes kitltsi sorrend soronknt minden sorn ngyo j rtk felF e megolds meghtrozst feljegyzses mdszerrel oldjuk megD S[i, j]Een feljegyezzkD mi volt z optimlis dnts c[i, j] szmtskorF

LKR for (i=0 to m) c[i, 0] = 0; for (j=1 to n) c[0, j] = 0; for (i=1 to m) { for(j=1 to n) { if(x[i] == y[j]) { c[i, j] = c[i-1, j-1]+1; S[i, j] = 2; } else if ( c[i-1, j] >= c[i, j-1]) { c[i, j] = c[i-1, j]; S[i, j] = 1; } else { c[i, j] = c[i, j-1]; S[i, j] = 0; } } } KIIR(i, j) if (i==0 || j == 0) return; if(S[i, j]==2) { KIIR(i-1, j-1); print x[i]; } else if (S[i, j]==1) { KIIR(i-1, j); else KIIR(i, j-1);

wurnsik eestynD wwwFdekormeloFhu

II

5.2 Verem adattpus megvalstshoz hasznlhat adatszerkezetek 5 ADATSZERKEZETEK

5. Adatszerkezetek5.1. VeremBol, VeremBe, SorBol, SorBa, PriSor SorBol, SorBa mveletekrtkhalmaz. iF Verem. [a1 , . . . an : ai of E, i = 1, . . . , n] Mveletek. V : V erem, x : E{V = [a1, . . . , an ], n > 0} {V = [a1, . . . , an ]}eremfol@DxA eremfe@DxA

{V = [a1, . . . , an1 ], x = an } {V = [a1, . . . , an , x]}

rtkhalmaz. iF Sor. [a1 , . . . an : ai of E, i = 1, . . . , n] Mveletek. S : Sor, x : E{S = [a1, . . . , an ], n > 0} {S = [a1, . . . , an ]}orfol@DxA orf@DxA

{S = [a2, . . . , an ], x = a1 } {S = [a1, . . . , an , x]}

rtkhalmaz.

iF iEn rtelmezett lineris rendezsi reliF Mveletek. S : P riSor, x : E

{S = {} {S = S}

orfol@DxA orf@DxA

{x = min(P re(S)), P re(S) = S\{x}} {S = P re(S) {x}}

5.2. Verem adattpus megvalstshoz hasznlhat adatszerkezetekMegvalsts tmbbel.e tm els elemtl kezdve trtlmzz veremen szerepl rtkeketD dott egy tet vltozD mely megdj verem tetejn lev tmelem indextD tov egy meret rtkD mi megdj tm mrettF e veremmveletek htkonyn megvlsthtkF Htrny. ilre rgztett mret memrit kell lefogllniF

Megvalsts lnccal.e lnn z elemek egy elem.csat muttt trtlmznk kvetkez elemre s elem.adat trtlE mzz vereme rkott dtotF e lnot legels ellr mutt fejrtkkel djuk megF e lnl trtn megvlsts esetn nem kell elre lefoglalni az egsz veremnek a memritF

Kombinlt adatszerkezet.ez elemek trolsr dott mret tmket hsznlunkD s ezen tmket egy ln fzve tE roljuk elF

5.3. Sor adattpus megvalstshoz hasznlhat adatszekezetekCirkulris tmb.ez elemeket egy mret mret tmen troljukD sor els elemnek s utols elemnek indext megjegyezveF e ltrehozott sor esetn z eleje rtk 0, a vge rtk 0F ez elemek kt rtk kztt helyezkednek el (a tmb vge a tmb elejnl folytatdik)F

wurnsik eestynD wwwFdekormeloFhu

IP

5 ADATSZERKEZETEK

5.5 Lnc, Krlnc absztrakt adatszerkezetek dencii

Lnc.vnn z elemek egy elem.csat muttt trtlmznk kvetkez elemre s elem.adat trtlE mzz sor rkott dtotF e lnot legels ellr mutt fejrtkkel s z utols ellr mutt vge rtkkel djuk megF ov szmon kell trtni egy vltozn z elem szm rtE ktF vnl trtn megvlsts sorn nem kell elre lefoglalni az egsz memritF

Kombinlt adatszerkezet.ez elemek trolsr dott mret tmket hsznlunkD s ezen tmket egy ln fzve tE roljuk elF Az els tmbhz troljuk a sor els elemnek indext, az utolshoz a tmb utols

elemnek indext.

5.4. Sorozat absztrakt adattpus Bvt, Kiolvas, Mdost mveleteiS = [a1 , . . . ai , ai+1 , . . . , an ]&0 i n S = [a1 , . . . , an ]&1 i n S = [a1 , . . . ai , . . . , an ]&1 i nfovit@D iD xA uiolvs@D iD xA wodosit@D iD xA

S = [a1 , . . . ai , x, ai+1 , . . . , an ] {x = ai &S = P re(S)} S = [a1 , . . . x, . . . , an ]

5.5. Lnc, Krlnc absztrakt adatszerkezetek denciiA = (M, R, Adat)lnD h a{kovet}D hol kovet M M prilis fggvnyD melyre teljeslX (f ej M )(x M )(k 0)(x = kovet(k) (f ej)).xyilvnvln pontosn egy olyn c M ell vnD melyre kovet(c) = D ezt lncvgnek nevezzkF e ellk hosszn ellk n szmt rtjkF r n > 0, kkorkovet(n1) (f ej) = lncvg F a e ez A = (M, R, Adat) krlnD h a{kovet}D hol kovet M M totlis fggvnyD melyre teljeslX

(x, y M )(k 0)(y = kovet(k) (x)).

5.6. Nem rendezett fa dencija apa fggvnnyelA = (M, R, Adat) nem rendezett fD h a{r}D r M M inris reliD s vn olyn g M D hogy G = (M, r) irnytott grfn rmely x M Ere pontosn egy (g, x) t vezetF g Et f gykernek nevezzkF eht minden nem rendezett f egyrtelmen megdht egy olyn Apa : M M prilis fggvnnyelD melyre teljesl kvetkez felttelX (g M )((Apa(g) = )(x M )(k 0)(Apa(k) (x) = g))

5.7. Rendezett fa absztrakt adatszerkezet dencija f(i) fggvnyekkelvegyen A = (M, R, Adat) olyn sztrkt dtszerkezetD hogy R = {f }Df : M (M {})F eht x M, f (x) = (y1 , . . . yk )D hol yi (M {}), i = 1, . . . , k. winden i > 0 termszetes szmr s x M Ere legyenf(i) (x) zf (x) i. komponenseF eht f(i) (x)z x i. (t djF r f(i) (x) = D kkor hinyzik z i. (F ez A dtszerkezetet fnk nevezzkD h vn olyn g M D hogy teljesl z li R felttelX e gykr nem ( senkinekD (ejtsd:

axemaig nemx )

winden pontD mi nem gykr ( vlkinek winden pontnk legfelje egy pj vn winden pont vezet t gykrlF

wurnsik eestynD wwwFdekormeloFhu

IQ

5.8 Fa absztrakt adatszerkezet dencija

5 ADATSZERKEZETEK

5.8. Fa absztrakt adatszerkezet dencijavegyen i tetszleges dthlmzF ez iEfeletti fk p@iA hlmz z legszke hlmzD melyre teljeslX F a(E) (a E)a F a(E) (ejtsd:

aaeeaefae )

(a E)(t1 , . . . , tk F a(E))(a(t1 , . . . tk ) F a(E))

5.9. Fa adatszerkezet kapcsolati tmb, kapcsolati lnc brzolsaiKapcsolati tmb.Elnye.igy pont (ir muttkt trolunk sttikusnD s troljuk (k szmt isF winden pont iF ( kzvetlenl elrhetF igy pont (ir muttkt dinmikusn troljuk lnnF

Htrnya. ttikusD ezrt nem lehet konstns iden vteni s trlniF xgy memriignyF

Kapcsolati lnc.

5.10. Fa adatszerkezet els-testvr, els-testvr-apa brzolsaiEls testvr brzols. kzvetlen testvrre z els (r e pont z dton kvl kt muttt trtlmzX

Els apa testvr brzols. kzvetlen testvrre z els (r z pjr

e pont z dton kvl hrom muttt trtlmzX

5.11. Rekurzv preorder fabejr algoritmusp ejrsn olyn lgoritmust rtnkD melynek emenete egy F f s egy M mveletD s z lgoritmus dott sorrenden pontosn egyszer vgrehjtj z M mveletet f pontjin lev dtokrF Preorder bejrs. F minden p s q pontjr h q ( pEnek vgy p l testvre qEnkD kkor p megelzi q -t a bejrsi sorrendben. e ejrs els eleme gykrD utn z els( gyker rszft jrjuk e rekurzvnD mjd msodik ( rszfjtD s gy folyttv gykr utols (nk rszfjtF

Preorder2(g,M) if(g=Nil) return; else { M(g); // gykren vgrehajtott mvelet if (g.Elsofiu!=Nil) Preorder2(g.Elsofiu, M); if(g.Testver!=Nil) Preorder2(g.Testver, M); }

5.12. Nemrekurzv preorder fabejr algoritmusPreorderV(g,M) if(g==Nil) return; Letesit(V:Verem); VeremBe(V,g); while(NemUres(V)) { VeremBol(V, p); M(p); if(p.Testver!=Nil) VeremBe(V, p.Testver); if(p.Elsofiu!=Nil) VeremBe(V, p.Elsofiu); }

wurnsik eestynD wwwFdekormeloFhu

IR

5 ADATSZERKEZETEK

5.13 Szint szerinti fabejr algoritmus

5.13. Szint szerinti fabejr algoritmusigy F f rmely kt p s q pontjr p kkor s sk kkor elzi meg q Et szint szerinti ejrsnD h d(p) < d(q) vgy d(p) = d(q) s p lr esikD mint q F

Szintbejar(g,M) if(g==Nil) return; Letesit(S:Sor); SorBa(S, g); while(Elemszam(S)!=0) { SorBol(S, p); M(p); p=p.Elsofiu; while(p!=nil) { SorBa(S,p); p=p.Testver; } }

5.14. Kupac adatszerkezet dencija, Maximum-Kupacole inris kup egy majdnem teljes binris faD mely minden szintjn teljesen kitlttt kivve leglsony szintetD hol lrl jor hldv egy dott ssig vnnk elemekF e ft egy tmen reprezentljukD minden elem a szint szerinti bejrs szerinti sorszmnak megfelel eleme a tmbnekF e kupot reprezentl e tmhz kt rtket rendelnkX hossz(A) tm mreteD kupacmeret(A) kup elemeinek szmF e kup gykere A[1]D szerkezeti kpsoltok egyszeren szmolhtkX A[i] l ( A[2i] A[i] jo ( A[2i + 1] A[i] pj A[ i/2 ] e kup minden gykrtl klnz elemre teljeslD hogy az rtke nem lehet nagyobb, mint az apjF innek kvetkezmnyeD hogy kup minden rszfjr teljeslD hogy gykreleme mximlisF MAXIMUM-KUPACOL eljrs. relyrelltj z A[i] elemre kuptuljdonsgotF ez elemet sllyeszti serkkel mindddigD mg tuljdonsg srlF

MAXIMUM-KUPACOL(A, i) l=2i; r=2i+1; if(lA[i]) max=l; else max=i; if(rA[max]) max=r; if(max!=i) { Csere(A[i],A[max]); MAXIMUM-KUPACOL(A, max); }

wurnsik eestynD wwwFdekormeloFhu

IS

5.15 Kupacrendezs algoritmusa, a MAXIMUM-KUPACOL algoritmussal egytt 5 ADATSZERKEZETEK

5.15. Kupacrendezs algoritmusa, a MAXIMUM-KUPACOL algoritmussal egyttilsknt rendezend elemek tmjt egy kup kell lktniF irre szolgl uegis eljrsX

KUPACEPIT(A) kupacmeret(A)=hossz(A); for(i=[hossz(A)/2] downto 1 MAXIMUM-KUPACOL(A, i);e kuprendezs lgoritmus ekkor kvetkezX

KUPACREND(A) KUPACEPIT(A) for(i=hossz(A) downto 2) { csere(A[1], A[i]); kupacmeret(A)=kupacmeret(A)-1; MAXIMUM-KUPACOL(A, 1); } MAXIMUM-KUPACOL(A, i) l=2i; r=2i+1; if(lA[i]) max=l; else max=i; if(rA[max]) max=r; if(max!=i) csere(A[i], A[max]); MAXIMUM-KUPACOL(A, max); }

5.16. Esemnykivlasztsi problma dencija, megold algoritmusegyk felD hogy dott esemny egy S = {a1 , a2 . . . an } n elem hlmzD melyek egy kzs erforrstD pldul eldtermet kvnnk hsznlniF e teremen egy iden sk egy esemny folyhtF ez ai esemny z si kezd idpont s z fi efejezsi idpont ltl dottD hol si < fi F e l egy mximlis hlmzt kivlsztni komptiilis esemnyeknek @i, j komptiilisD h si > fj vgy sj > fi AF peltesszkD hogy z S esemnyhlmz elemeit efejezsi idejk szerint nemskken sorrende rendeztkF

MOH-ESEMNY-KIVLASZT(s, f) n=hossz(s); Letesit(A:Halmaz); Bovit(A, 1); i=1; for(m=2 to n) { if(s[m]>=f[i]) { Bovit(A, m); i=m; } } return A;

wurnsik eestynD wwwFdekormeloFhu

IT

5 ADATSZERKEZETEK

5.17 Optimlis prex kd problma, Human-kd szerkeszt

5.17. Optimlis prex kd problma, Human-kd szerkeszte tovikn sk olyn kdszvkt tekintnkD melyre igzD hogy egyik sem kezd szelete msiknkF ez ilyen kdolst prex-kdnak vgy prex mentes kdnak nevezzkF Megszerkeszts. e kd fjhoz prioritsi sort hsznlunkD mely f pontjit z f rtk lpjn troljF iredmnykppen f gykert dj z lgoritmus visszF

HUFFMAN(C) n=|C|; Letesit(Q:PriSor); for(c in C) SorBa(Q, c); for(i=1 to n-1) { j z cscs ltestse; SorBol(Q, x); bal[z]=x; y=SorBol(Q, y); jobb[z]=y; f[z]=f[x]+f[y]; SorBa(Q, z); } SorBol(Q, x); return x;

wurnsik eestynD wwwFdekormeloFhu

IU

6 GRFOK

6. Grfok6.1. Kapcsolatmtrix, llista grf-reprezentcik, idignyekKapcsolatmtrix (szomszdsgi mtrix).mkket trolhtjF rignyF (n2 )D hol |V | = n. exiv idignyeX (1) ilEiteri idignyeX (n2 ) uiEiteri idignyeX (n)F

G[i, j] = 1 h(i, j) E D mkzett grf esetn G

lhalmazlnc vagy lhalmaztmb. rignyX (|E|) exiv idignyeX (|E|) ilEiteri idignyeX (|E|) uiEiteri idignyeX (|E|)

z lek felsorolsF

6.2. t, legrvidebb t dencijavegyen = (R, ) egy vgesD rendezett hlmzF P ,z ltl de(nilt tD zz egyszer grfD melyre V (P ) = R s E(P ) ={uv : rendezsen v z u rkvetkezjeD vgy fordtv}F Legrvidebb t. (u, v) = D h nins pq tY egyknt min|| : : u vF

6.3. Szlessgi keressigy dott slyoztln irnytott vgy irnyttln grf egy pontjl keressk z elrhet pontokt s z zokhoz trtoz legrvide utktF Bemenet. G = (V, E) grf s egy kiindulsi pont r V F Kimenet. e legrvide utk fj egy ep fggvny ltl megdvD s egy d fggvnyD melyre d(p) = (p) minden p V EreF

SZELTKERES for(p in V) { Apa(p)=-1; d(p)=INF; } d(r)=0; Apa(r)=0; Letesit(S:Sor); SorBa(S, r); while(Elemszam(S)>0) { SorBol(S, u); for (v in Kiel(G, u)) { if(Apa(v)0) { SorBol(Q, u); Bent(u)=1; for(v in Kiel(G, u)) { if (Bent(v)==0) and (c(u, v)d(u)+c(u, v)) { d(v)=d(u)+c(u, v); Modosit(Q, v); Apa(v)=u; } Dijkstra(G, s) Kezd(G, s); Letesit(Q:ModPriSor); for(v in V) { SorBa(Q, v); while(Elemszam(Q)>0) { SorBol(Q, u); Kesz(u)=1; for(v in Kiel(G, u)) { if(Kesz(v)==0) Kozelit(u, v); } }

wurnsik eestynD wwwFdekormeloFhu

PI

6.14 Legrvidebb utak felskorlt s konvergencia tulajdonsgai

6 GRFOK

6.14. Legrvidebb utak felskorlt s konvergencia tulajdonsgaiegyk felD hogy qa@D iD A irnytottD slyozott grfr s s kezdpontr vgrehjtottuk uezd eljrstD mjd vlhny uozelit mveletetF ikkor z li sszefggsek teljeslnekF Fels korlt.d(v) (s, v) s h egyszer d(v) = (s, v)D kkor ezutn mindig teljesl z egyenlsgF KonvergenciaF r s u v egy legrvide t s d(u) = (s, u) uozelit@qD uD vD A vgrehjts elttD kkor uozelit@qD uD vD A vgrehjts utnd(v) = (s, v)F

6.15. Ford Bellman algoritmusez lgoritmus egy negatv sly krt nem tartalmaz G = (V, E) slyozott grfn htrozz meg egy s kezdpontl legrvide utk hosszt s legrvide utk fesztfjtF r grf trtlmz negtv krtD kkor hmis rtket d visszD egyknt igztF

FordBellman(G, s) for(v in V) { d(v)=INF; Apa(v)=0; } d(s)=0; for(i=1 to |V|-1) { for( (u, v) in E) { if(d(v)>d(u)+c(u, v)) { d(v) = d(u)+c(u, v); Apa(v) = u; } } } for( (u, v) in E) { if (d(v)>d(u)+c(u, v)) return false; } return true;

6.16. Floyd-Warshall algoritmuse feldt egy slyozott grfn minden pontprr legrvide utk megkeresseF Input. lyozott grfF Output. wtrixD mely legrvide utkt trtlmzzY tov egy segdmtrixotD mely minden pontprr trtlmzz legrvide t els pontjrD gy mtrix lpjn legrvide t egyszeren megkphtF

FloydWarshall(G, s) for(i=1 to n) { for(j=1 to n) { D[i, j]=G[i, j]; if(D[i, j]A[j]) { Csere(A[1], A[j]); MAXIMUM_KUPACOL(A, 1); } } return A[1];

7.3. Minimlis s maximlis elem egyttes kivlasztsaedott n mret tm elemeil kivlsztni mximlis s minimlis elemetF

MaxMin(A) if(n%2=0) { k=2; if(A[1]