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

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

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.

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

Algoritmusok és adatszerkezetek gyakorlat 07

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

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

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

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

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

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

Hierarchikus adatszerkezetek

Alapvető fizikai tárolási szerkezetek, indexek, B-fák

Adatszerkezetek 7a. Dr. IványiPéter

Térinformatikai adatszerkezetek

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Adatszerkezetek 1. előadás

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

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

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

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

Táblázatok fontosabb műveletei 1

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

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

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

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

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E

15. A VERSENYRENDEZÉS

Egyirányban láncolt lista

Algoritmuselmélet 2. előadás

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Adatszerkezetek I. 7. 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:

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

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

ADATBÁZIS-KEZELÉS ALAPOK I.

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Példa 30 14, 22 55,

Adatbázisok elmélete 18. előadás

Fák 3. előadás. (Horváth Gyula anyagai felhasználásával)

Algoritmusok és adatszerkezetek 2.

Programozási segédlet

Adatbáziskezelés. Indexek, normalizálás NZS 1

9. előadás. A táblázat. A táblázatról általában, soros, önátrendező, rendezett és kulcstranszformációs táblázat

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.

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

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

Adatszerkezetek 2. Dr. Iványi Péter

Adatbázisok elmélete 18. előadás

Rendezettminta-fa [2] [2]

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

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

Kupac adatszerkezet. 1. ábra.

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

Adatszerkezetek I. 6. előadás

Adatszerkezetek 1. Dr. Iványi Péter

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

Algoritmuselmélet 6. előadás

Adatszerkezetek és algoritmusok

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatbázisok elmélete

Hierarchikus adatszerkezetek

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

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

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

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.

6. LISTÁK ábra. A lista absztrakt adatszerkezet (ADS)

Számítógépek felépítése

Elemi adatszerkezetek

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

Excel 2010 függvények

Adatszerkezetek I. 9. előadás

Láncolt listák. PPT 2007/2008 tavasz.

I. rész. 1. feladat Oldjuk meg a következő egyenletrendszert, illetve egyenlőtlenséget a valós számok halmazán!

Algoritmusok és adatszerkezetek II.

ADATBÁZISKEZELÉS ADATBÁZIS

Algoritmusok és adatszerkezetek I. 3. előadás

PROGRAMOZÁSI TÉTELEK

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

Lekérdezések feldolgozása és optimalizálása

Adatszerkezetek 2. Dr. Iványi Péter

7. fejezet: Mutatók és tömbök

Számlaközpont Gazdaságfejlesztő Iroda Kft.

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

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.

Adatszerkezetek I. 4. előadás

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

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

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

Egyesíthető prioritási sor

Algoritmusok és adatszerkezetek I. 5. előadás

Algoritmusok és adatszerkezetek II.

2. Fejezet : Számrendszerek

Struktúra nélküli adatszerkezetek

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

Adatbázis rendszerek. dr. Siki Zoltán

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3

Átírás:

17. A 2-3 fák és B-fák 2-3 fák Fontos jelentősége, hogy belőlük fejlődtek ki a B-fák. Def.: Minden belső csúcsnak 2 vagy 3 gyermeke van. A levelek egy szinten helyezkednek el. Az adatrekordok/kulcsok csak a levelekben vannak tárolva. A belső pontokban a keresést informáló kulcsok és mutatók vannak. A levelekben balról jobbra nőnek a kulcsok. A belső pontokban fizikailag ilyen szerkezet van: (szülőre mutató pointer) Logikailag a belső csúcs kétféle: a, 3 gyerek [+] k1 a legkisebb kulcs k2 a legkisebb kulcs Ez az előírás nem mindenütt szerepel, nálunk igen! b, 2 gyerek [+] k1 a legkisebb kulcs A két típus közötti váltást csak logikailag kezeljük. ( csere ) Pl.: 2 különböző szerkezetű 2-3 fa, n = 13

Megjegyzés: n = 0 t = NIL vagy üres gyökér n = 1 kivételesen a gyökérnek egy gyereke van. Összefüggés n és h között: 2 h n 3 h h log 2 n Még 2-es elágazási tényező esetén is korlátos a fa magassága. Műveletek: Keresés Összehasonlítások száma 1,2,,h-1 magasságban: 1-2 h magasságban: 1 T(n) 2h+1 2log 2 n+1 = Ơ (logn) Beszúrás Kereséssel meghatározzuk a helyét. ( I ) A legalsó belső pontnak 2 gyereke van ( elfér még egy harmadik is) ( II ) A lagalsó belső pontnak 3 gyereke van Továbbá felfelé haladva korrigálni kell a megfelelő kulcsértéket 2-re. k = 8 A megoldás a csúcsvgás. A szülőben is módosítani kell. Ha a szülőnek eleve 3 gyereke volt, akkor itt is csúcsvágásra van szükség, és így tovább felelé. Ha valahol ezen az úton van egy 2 gyermekes belső csúcs, akkor ott megáll a beszúrás, mert annak lehet 3 gyereke.

Ha ezen az úton minden belső pontnak 3 gyereke volt, akkor a csúcsvágás felgyűrűzik a gyökérig. Ekkor a kétfelé vágott gyokér fölé egy új gyökeret kell tenni. Az előző ábrát véve alapul: Nőtt a h! Törlés Megkeressük a törlendő kulcsot. ( I ) A kulcs szülőjének 3 gyereke van (tehát neki 2 testvére van). a, k = 5 b, k = 10 c, k = 12 a, => + korrekció a szülőben ( II ) A törlendő elemnek csak 1 testvére van, azaz a szülőnek 2 gyereke van. II / 1 Ha a szülőnek van 3 gyerekes testvére, akkor az 1 gyereket átad k = 5 5 => 10-esre =>

II / 2 Ha a szülőnek nincs 3 gyerekes testvére => csúcsösszevonás Szükség esetén a csúcsösszevonásokat folytatjuk felfelé. Ez felgyűrűzhet a gyökérig. k = 10 = > új gyökér h csökkent! Műveletek költsége: T(n) = Ơ (h) = Ơ (logn) Megjegyzés: Invariáns (+) feltétel akkor sérül, amikor a minimális elemet töröljük, vagy a minimálissal kisebb elemet szúrunk be.

B-fák A 2-3 fák természetes általánosításai: 3 => r, 2 => 2 ; gyakorlatban kb. 50 r 1000 ( egy fára r rögzített!) A háttértárolókon való nagy mennyiségű adat tárolásának legjobb módszere. Elméleti alapok: Definíció: B-fa (r-áris / r-edrendű kereső-/rendezőfa): A gyökér s leágazásszáma 2 s r (kivéve az n=0,1 eseteket) A (gyökér alatti) többi belső pont száma: 2 s r Egy belső pont logikai tartalma: Az itteni k kulcsokra: k 1 k < k 2 és k1 minimális kulcs. A levelek mind egy szinten, a gyökértől egyenlő távolságra helyeszkednek el. A tulajdonképpeni adatok ( rekordok) itt vannak. A teljes fa esetleg néhány felső szint kivételével háttértárolón van. A levelek ilyenkor általában több rekordot tartalmaznak. Műveletek: Keresés, beszúrás és törlés: a keresőfák ill. 2-3 fák alapján könnyen elképzelhető. Meggondoljuk: Keresés: A belső pontokban lineáris vagy logaritmikus keresés; lineáris keresés esetén MÖ = r-1 Még a levélben is keresünk több rekord esetén. Beszúrás: Itt is csúcsvágással (ha elértük r-et) Pl.: r = 11, 2 =6 Ha egy betelt csúcshoz adunk +1 gyereket, akkor 12 lenne, amiből előállítunk 6+6-ot.

Törlés: Itt is csúcsösszevonással ( ha elértük az 2 -t lefelé) Ha egy pont alatt 6 gyerek van ( előző pont: Beszúrás beli példánknál) és ennek minden testvére alatt is, akkor a törlés után 5 lenne => 5+6=11 Mágneslemezes háttértárolón való elhelyezés sáv (track) szektor (block) 512 byte nagyobb egység (cluster)/lap/bucket pl. 2048 vagy 4096 byte ez az átvitel egysége (lehet +1 szint) lap egy olyan logikai egység, amelyet a rendszer együtt kezel ( átvitel ) Legyen pl. 1000000 rekord 1 lap = 2048 byte 1 rek = csaknem 500 byte (480) 1 lapon 4 rekord fér el. kulcs 16 byte címek 4 byte Ekkor egy belső pont ( = index lap) esetén r = 100 A levelek száma = 250000 A fa mérete: max h

min h Az ábrázolás paramétereinek a kritériuma: Az átlagos elérése idő ~ lemezhez fordulások száma. Itt: 3-4 Fontos javítás: gyökér mindig a memóriában van, esetleg még az alatta lévő szint is; kiegészítő memóriaterületen [cash] bizonyos elérési útvonalak tárolása.