Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 6.

Hasonló dokumentumok
Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 7.

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Adatszerkezetek 7a. Dr. IványiPéter

Algoritmusok és adatszerkezetek gyakorlat 07

7 7, ,22 13,22 13, ,28

Példa 30 14, 22 55,

Elemi adatszerkezetek

10. előadás Speciális többágú fák

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

Hierarchikus adatszerkezetek

Fák Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa

Számláló rendezés. Példa

Fa (Tree): csomópontok (nodes) halmaza, amelyeket élek (edges) kötnek össze, és teljesülnek az alábbi feltételek:

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Adatszerkezetek és algoritmusok

Rendezettminta-fa [2] [2]

Bináris keresőfa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor

Algoritmuselmélet 2. előadás

file:///d:/okt/ad/jegyzet/ad1/b+fa.html

17. A 2-3 fák és B-fák. 2-3 fák

Keresőfák és nevezetes algoritmusaikat szemléltető program

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás

Kupac adatszerkezet. 1. ábra.

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

Algoritmusok és adatszerkezetek II.

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Gyakorló feladatok ZH-ra

10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 28.

A MAXIMUM-KUPACOL eljárás helyreállítja az A[i] elemre a kupactulajdonságot. Az elemet süllyeszti cserékkel mindaddig, amíg a tulajdonság sérül.

- Levelek: operandusok - Csomópontok: operátorok. Fenti kifejezés: (x+ (y 10)) * (6 / z) Bináris Keresőfa (BST) Példa bináris keresőfára.

file:///d:/apa/okt/ad/jegyzet/ad1/b+fa.html

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezet - műveletek

16. Az AVL-fa. (Adelszon-Velszkij és Landisz, 1962) Definíció: t kiegyensúlyozott (AVL-tulajdonságú) t minden x csúcsára: Pl.:

Buborékrendezés: Hanoi Tornyai: Asszimptótikus fv.ek: Láncolt ábrázolás: For ciklussal:

Hierarchikus adatszerkezetek

Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:





Körkörös listák. fej. utolsó. utolsó. fej

Egyesíthető prioritási sor

Gyakori elemhalmazok kinyerése

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

6. előadás. Kiegyensúlyozottság, AVL-fa, piros-fekete fa. Adatszerkezetek és algoritmusok előadás március 6.

Rendezések. Összehasonlító rendezések

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

Információs Technológia

Algoritmuselmélet zárthelyi (BSc képzés) április 24.

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

ELEKTRONIKAI ALAPISMERETEK

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Takács Lajos ( ) és Prékopa András ( ) emlékére.

Absztrakt adatstruktúrák A bináris fák

Térinformatikai adatszerkezetek

Algoritmusok és adatszerkezetek II.

Algoritmusok és adatszerkezetek II.

Ó ű ű Á ú ű ű ú ú ú ű ű É ú É Á Á ú ű Ü Á Ü Á ű Ö Ú É Ó É Á Á Á Ű Á úá Á Ö É Ö É Ü

Módosítható Prioritási sor Binomiális kupaccal. Wednesday, March 21, 12

Algoritmusok és adatszerkezetek gyakorlat 09 Rendezések

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Bináris keresőfák. Adat : M Elemtip és Elemtip-on értelmezett egy lineáris rendezési reláció,

ö ő í ő ü ö ö í ö ö ö ű ő ö í ü í ö ű í ő ö ö ú ö í ö ö í ö ú ö ő í ö ő Á ű ö

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

ELEKTRONIKAI ALAPISMERETEK

PROJEKTÉRTÉKELÉSI ALAPOK

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský

Algoritmusok bonyolultsága

Önszervező bináris keresőfák

Algoritmusok és adatszerkezetek II.

ELEKTRONIKAI ALAPISMERETEK

Algoritmusok és Adatszerkezetek II. előadás

Mesterséges Intelligencia 1

Feladat. Ternáris fa. Típusspecikáció. Reprezentáció. Absztrakt implementáció. Érdi Gerg EAF II. 4/3.

2017/ Szegedi Tudományegyetem Informatikai Intézet

Az első kiegyensúlyozott fa algoritmus. Kitalálói: Adelson-Velskii és Landis (1962)

A számítástudomány alapjai

Átlag napi elérés a 15 évesek és idősebbek körében országos

Algoritmuselmélet 11. előadás

Σ imsc

FIZIKA KÖZÉPSZINT. Első rész. Minden feladat helyes megoldásáért 2 pont adható.

Haladó rendezések. PPT 2007/2008 tavasz.

Programozás I. C nyelv

ÖNSZERVEZŐ BINÁRIS KERESŐFÁK HATÉKONYSÁGA

ELEKTRONIKAI ALAPISMERETEK

Adaptív dinamikus szegmentálás idősorok indexeléséhez

A programozás alapjai 1 Rekurzió

A lecke célja: A tananyag felhasználója megismerje az anyagi pont mozgásának jellemzőit.

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

í ű í Ü ő ö ö Á Á Á

1. gyakorlat. Mesterséges Intelligencia 2.

Átírás:

Algorimuselméle Keresőfák, piros-fekee fák Kaona Gyula Y. Sámíásudományi és Információelmélei Tansék Budapesi Műsaki és Gadaságudományi Egyeem. előadás Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / Keresőfák Tároljuk a U rendee halma elemei, hogy BESZÚR, TÖRÖL, KERES, MIN, (MAX, TÓLIG) haékonyak legyenek. Bináris fa bejárása eljes fa (új def.): a alsó sin is ele van l sinű, eljes fának l csúcsa van. Fa csúcsai elem(), bal(), jobb() eseleg apa() és resfa() + Ha a gyökér, y pedig a -es csúcs, akkor * 5 bal(jobb()) = y, apa(apa(y)) =, elem(bal()) =, resfa() =. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

PREORDER, INORDER, POSTORDER pre() in() pos() begin begin begin láoga(); in(bal()); pos(bal()); pre(bal()); láoga(); pos(jobb()); pre(jobb()) in(jobb()) láoga() end end end + * 5 PREORDER: + 5 INORDER: 5 + POSTORDER: 5 + Lépéssám: O(n) Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / Bináris keresőfa Definíció (Keresőfa-ulajdonság) Tesőleges csúcsra és a baloldali résfájában levő y csúcsra iga, hogy elem(y) elem(). Hasonlóan, ha egy csúcs a jobb résfájából, akkor elem() elem(). 0 Hái felada: Igaoljuk, hogy egy bináris keresőfa elemei a fa inorder bejárása nemcsökkenő sorrendben láogaja meg. Egy kényelmes megállapodás: a ovábbiakban felessük, hogy nincsenek ismélődő elemek a keresőfában. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

Naiv algorimusok KERES(s,S): Össehasonlíjuk s-e S gyökerében árol s elemmel. Ha s = s, akkor megaláluk. Ha s < s, akkor balra megyünk ovább. KERES(, S) Ha s > s, akkor jobbra megyünk. Ugyane a ua járjuk be a KERES(5, S) kapcsán, de a nem aláljuk meg. Lépéssám: O(l), ahol l a fa mélysége MIN: mindig balra lépünk, amíg lehe MAX: mindig jobbra lépünk, amíg lehe Lépéssám: O(l) TÓLIG(a, b, S): KERES(a, S) INORDER a-ól b-ig Lépéssám: O(l + k), ahol k a a és b köö levő elemek sáma Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás 5 / Naiv BESZÚR BESZÚR(s, S): KERES(s, S)-sel megkeressük, hova kerülne, és új levele adunk hoá, pl. BESZÚR(, S): Lépéssám: O(l) Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

Naiv TÖRÖL TÖRÖL(s, S): Ha s levél, akkor riviális, pl. TÖRÖL(, S): TÖRÖL(s, S): Ha s-nek egy fia van, akkor: s fiú(s), pl. TÖRÖL(, S): Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / Naiv TÖRÖL Vagy pl. TÖRÖL(, S ): 0 0 TÖRÖL(s, S): Ha s-nek ké fia van, akkor vissaveejük a előő esere. s helyére együk y := MAX(bal(s))- és öröljük y-. Pl. TÖRÖL(, S ): 0 0 Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

Naiv TÖRÖL Állíás y := MAX(bal(s)) csúcsnak nem lehe ké fia. Bionyíás. Ha lenne ké fia, akkor lenne egy y jobb fia is. De ekkor y > y. Lépéssám: O(l) Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / Faépíés naiv besúrásokkal Ha pl. a,,..., n soroaból épíünk fá így, akkor e kapjuk: A épíés kölsége: + +... + (n ) = O(n ) Téel n Ha egy vélelen soroaból épíünk fá naiv besúrásokkal, akkor a épíés kölsége álagosan O(n log n). A kapo fa mélysége álagosan O(log n). Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás 0 /

Java animáció: Bejárások, bináris keresőfa Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / Piros-fekee fák Olyan bináris keresőfa, melynek mélysége nem lehe nagy. BESZÚR, TÖRÖL, KERES, MIN, (MAX, TÓLIG) haékonyak. Definíció A piros-fekee fa egy bináris keresőfa, melyre eljesülnek a kövekeők: Minden nem levél csúcsnak fia van. Elemeke belső csúcsokban árolunk. Teljesül a keresőfa ulajdonság. A fa minden csúcsa piros vagy fekee. 5 A gyökér fekee. A levelek fekeék. Minden piros csúcs mindké gyereke fekee. Minden v csúcsra iga, hogy a össes v-ből levélbe veeő úon ugyanannyi fekee csúcs van. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

Példa 5 5 Megj.: A sokásos bináris fá kiegésíjük üres levelekkel. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / Piros-fekee fák Jelölések F v : v gyökerű résfa m(v): v magassága, a leghossabb v-ből levélbe veeő ú éleinek sáma fm(v): v fekee-magassága, a v-ből levélbe veeő össes úon a fekee csúcsok sáma, v- nem sámolva. (E minden úon egyforma a. ulajdonság mia.) Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

Tulajdonságok Állíás Egy piros-fekee fa minden v csúcsára eljesül m(v) fm(v) m(v). Bionyíás. A leghossab levélbe veeő úon a fekeék sáma nem lehe öbb a élek sámánál fm(v) m(v).. pon mia a leghossabb úon a ponoknak legalább a fele fekee m(v) fm(v). Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás 5 / Tulajdonságok Állíás F v belső csúcsainak sáma b v fm(v). Bionyíás. Indukcióval m(v)-re: m(v) = 0 fm(v) = 0, b v 0 Ha m(v) > 0, akkor legyen, y a ké fia. m() < m(v) és m(y) < m(v) fm(v) fm() fm(v) és fm(v) fm(y) fm(v) b v = b + b y + b v ( fm() )+( fm(y) )+ ( fm(v) )+ = fm(v). Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

Tulajdonságok Állíás Ha egy piros-fekee fában n eleme árolunk, akkor a fa magassága log(n + ). Bionyíás. Ha r a gyökér b r = n. n = b r fm(r) log(n + ) fm(r) m(r) Téel KERES, MAX, MIN lépéssáma piros-fekee fában O(log n). Bionyíás. Álalában minden keresőfában a lépéssám a fa magasságával arányos O(l) = O(log n). Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / BESZÚR lépéssáma Ha a keresőfáknál hasnálaos besúrás hasnálnánk, akkor megsérülhene a piros-fekee ulajdonság. Forgaás y s y s F y F F s F F y F s Megj.: E a művele megarja a keresőfa ulajdonságo. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

BESZÚR Súrjuk be a új eleme a keresőfáknál megismer módon. Új belső csúcs kelekeik (gyerekei csak üres fekee levelek): Ha a gyökér, akkor legyen fekee Ha nem gyökér, akkor legyen a apja, legyen piros. () Ha fekee fekee-magasságok sehol nem válonak () Ha piros nem eljesül a piros-fekee ulajdonság ovábbi lépések kellenek. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / BESZÚR () Mivel piros, nem gyökér legyen apja (fekee), esvére y. (.) Ha y piros ásíneük - pirosra y y Evvel a problémá ké sinel feljebb oluk, o folyajuk a fa rendbeéelé. Kivéve, ha a gyökér marad fekee fm() eggyel nagyobb les. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás 0 /

BESZÚR (.) Ha y fekee: (..) Ha és nem aonos oldali gyerek forgaunk körül. y y Evvel a kövekeő esere veeük a problémá. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / BESZÚR (.) Ha y fekee: (..) Ha és aonos oldali gyerek forgaunk körül, majd ásíneünk. y y y Evvel a gyökér fekee-magassága nem váloik, és eljesül a piros-fekee ulajdonság. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

BESZÚR Téel A BESZÚR során (a) a lépéssám O(log n), (b) legfeljebb forgaás örénik. Bionyíás. (a) y piros eseben a (.) ponban sinel feljebb kerül a baj sinenkén konsans lépés O(log n). (b) Forgaás csak a (.) eseben örénik, de ekkor nincs felgyűrűés, rögön kijavíjuk a fá. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / TÖRÖL Hasonló módserek, de bonyolulabb. Téel A TÖRÖL során (a) a lépéssám O(log n), (b) legfeljebb forgaás örénik. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

Példa BESZÚRásokra Súrjuk be egy üres fába sorban a,,,,, elemeke. (..) forgaás (..) ásín. (.) ásín. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás 5 / Példa BESZÚRásokra Súrjuk be egy üres fába sorban a,,,,, elemeke. (..) forgaás (..) forgaás (..) ásín. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /

Példa BESZÚRásokra Súrjuk be egy üres fába sorban a,,,,, elemeke. (.) ásín. Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás / Java animáció: Piros-fekee fa Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás /