file:///d:/apa/okt/ad/jegyzet/ad1/b+fa.html
|
|
- Nikolett Fábián
- 6 évvel ezelőtt
- Látták:
Átírás
1 1 / :23 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes tananyagának kissé bővített fordítását adjuk. Tartalom: 1. Mi a B+ fa? 2. A beszúrás algoritmusa 3. A törlés algoritmusa 1. Mi a B+ fa? Az adathalmazokon a legtöbb keresés és módosítás gyorsabban, hatékonyabban hajtható végre, ha a típusértékeket rendezve tároljuk. Nem praktikus azonban a rekordokat szekvenciálisan elhelyezni, mert így a legtöbb beszúrás és törlés kapcsán a tároló jelentős részének újraírása válna szükségessé. A rendezett vagy rendezetlen láncolt listákon pedig a keresés nem elég hatékony. Ez arra vezet bennünket, hogy az adatokat keresőfába rendezve képzeljük el. Az első ötletünk az AVL fák vagy a piros-fekete fák alkalmazása lehetne, most azonban az adatokat egy véletlen elérésű háttértáron, pl. egy mágneslemezen kívánjuk elhelyezni. A mágneslemezek pedig úgy működnek, hogy egyszerre az adatok egy egész blokkját, tipikusan 512 byte vagy négy kilobyte mennyiségű adatot mozgatunk. Egy bináris keresőfa egy csúcsa ennek csak egy töredékét használná, ezért olyan struktúrát keresünk, ami jobban kihasználja a mágneslemez blokkjait. Innét jön a B+ fa, amiben minden csúcs legfeljebb d mutatót (4 d), és legfeljebb d-1 kulcsot tartalmaz. Úgy tekintjük, hogy a belső csúcsokban mindegyik referencia két kulcs "között" van, azaz egy olyan részfa gyökerére mutat, amiben minden érték a két kulcs között található (mindegyik csúcshoz hozzáképzelve balról egy "mínusz végtelen", jobbról egy "plusz végtelen" értékű kulcsot). Íme d=4 értékre egy elég kicsi fa: Az adatok a levélszinten vannak. A belső kulcsok csak hasító kulcsok. Egy adott kulcsú adat keresése során ezek alapján tudhatjuk, melyik ágon keressünk tovább. A levélszinten minden kulcshoz tartozik egy mutató, ami a adatrekordra hivatkozik. (A leveleket a d-edik mutatókkal gyakran listába fűzik.) A B+ fák esetében megköveteljük, hogy a gyökércsúcstól mindegyik levél azonos távolságra legyen. Így
2 2 / :23 a fenti ábrán látható fában tárolt 11 kulcs bármelyikére rákeresve (amelyek mindegyikét a legalsó, a levél szinten találjuk: a belső csúcsok kulcsai csak a tájékozódást szolgálják), három csúcsot érintünk (a gyökércsúcsot, egyik középső szintű csúcsot, és az egyik levelet). A gyakorlatban persze d sokkal nagyobb. Tegyük fel például, hogy egy-egy blokk 4KB, a kulcsaink 4 byte-os egész számok, és mindegyik mutató egy 6 byte-os relatív cím (a fájl kezdőcíméhez képest). Akkor a d értékét úgy választjuk, hogy a lehető legnagyobb egész szám legyen, amire 4 (d 1) + 6 d Ezt az egyenlőtlenséget d-re megoldva d 410 adódik, tehát a d=410 értéket választjuk. Mint láthatjuk, d egészen nagy lehet. Egy B+ fa a következő invariánsokat teljesíti: Minden levélben legfeljebb d-1 kulcs, és ugyanennyi, a (azaz ilyen kulcsú) adatrekordra hivatkozó mutató található. A gyökértől mindegyik levél ugyanolyan távol található. (Más szavakkal, minden levél azonos mélységben, a legalsó szinten van.) Minden belső csúcsban eggyel több mutató van, mint kulcs, ahol d a felső határ a mutatók számára. Minden Cs belső csúcsra, ahol k a Cs csúcsban a kulcsok száma: az első gyerekhez tartozó részfában minden kulcs kisebb, mint a Cs első kulcsa; az utolsó gyerekhez tartozó részfában minden kulcs nagyobb-egyenlő, mint a Cs utolsó kulcsa; és az i-edik gyerekhez tartozó részfában (2 i k) lévő tetszőleges r kulcsra Cs.kulcs[i-1] r < Cs.kulcs[i]. A gyökércsúcsnak legalább két gyereke van (kivéve, ha ez a fa egyetlen csúcsa, következésképpen az egyetlen levele is). Minden, a gyökértől különböző belső csúcsnak legalább floor(d / 2) gyereke van. (floor(d / 2) = d/2 alsó egész-rész.) Minden levél legalább floor(d / 2) kulcsot tartalmaz (kivéve, ha a fának egyetlen csúcsa van). A B+ fa által reprezentált adathalmaz minden kulcsa megjelenik valamelyik levélben, balról jobbra szigorúan monoton növekvő sorrendben. A belső csúcsokban található hasító kulcsok segítségével tetszőleges levélcsúcsbeli kulcsot gyorsan megtalálhatunk (illetve megtudhatjuk, ha nincs a levelekben), a fenti invariánsok alapján: a csúcsokban is logaritmikusan keresve, és mindig a ágon továbbhaladva, O(lg n) lépésben (ahol n a B+ fával ábrázolt adathalmaz mérete). A hasító kulcsok nem okvetlenül szerepelnek a levelekben. (Mint látni fogjuk, a törlő algoritmus ténylegesen is létrehoz ilyen fákat.) Ugyan a fa magassága O(lg n), a gyakorlatban a fa h magassága az lg n érték töredéke: HF: Bizonyítsuk be, hogy a log[d](n/(d-1)) h log[floor(d/2)](n/2) egyenlőtlenség teljesül! (log[d](n) = az n szám d alapú logaritmusa.) Ez azt jelenti, hogy a fenti d=410 értékkel log[410](n/409) h log[205](n/2). Pl. ha n= (n=egymilliárd), akkor 2,4 < h < 3,8, vagyis h=3, azaz a fának pontosan négy szintje van. Egy ilyen fánál a felső két szintet az adatbázis megnyitásakor betöltjük a központi tárba. A levélszintről viszont még egyet lépünk a tényleges adatrekord eléréséhez. Ez azt jelenti, hogy egy-egy adat eléréséhez összesen háromszor olvasunk a lemezről, egymilliárd rekordot tartalmazó adatbázis esetén. Ha pedig a keresett kulcsú rekord nincs az adatbázisban, csak kétszer olvasunk a lemezről. Az alábbi példákban továbbra is a d=4 értékkel dolgozunk. A fenti invariánsok alapján ez azt jelenti, hogy minden levél legalább két kulcsot tartalmaz; minden belső csúcsnak pedig legalább két gyereke és legalább egy hasító kulcsa van. 2. A beszúrás algoritmusa
3 3 / :23 Ha a fa üres, hozzunk létre egy új levélcsúcsot, ami egyben a gyökércsúcs is, és a beszúrandó kulcs/mutató pár a tartalma! Különben keressük meg a kulcsnak levelet! Ha a levélben már szerepel a kulcs, a beszúrás sikertelen. Különben menjünk az 1. pontra! 1. Ha a csúcsban van üres hely, szúrjuk be a kulcs/mutató párt kulcs szerint rendezetten ebbe a csúcsba! 2. Ha a csúcs már tele van, vágjuk szét két csúccsá, és osszuk el a d darab kulcsot egyenlően a két csúcs között! Ha a csúcs egy levél, vegyük a második csúcs legkisebb értékének másolatát, és ismételjük meg ezt a beszúró algoritmust, hogy beszúrjuk azt a szülő csúcsba! Ha a csúcs nem levél, vegyük ki a középső értéket a kulcsok elosztása során, és ismételjük meg ezt a beszúró algoritmust, hogy beszúrjuk ezt a középső értéket a szülő csúcsba! (Ha kell, a szülő csúcsot előbb létrehozzuk. Ekkor a B+ fa magassága nő.) Eredeti: A 20 beszúrása: Beszúródik a levélbe. A 13 beszúrása: (1;4 9;13) hasad, a 2. levél minimuma a szülőbe másolódik új hasítókulcsnak. A 15 beszúrása: Beszúródik a levélbe. A 10 beszúrása: (9;10 13;15) hasad, (13;15) minimuma a szülőbe másolódik új hasítókulcsnak.
4 Sci 340: B+-trees / :23 A 11 beszúrása: Beszúródik a levélbe. A 12 beszúrása: (9;10 11;12) hasad, (11;12) minimuma a szülőbe másolódik új hasítókulcsnak; (9;11 13;16) hasad, (13;16) minimuma felmegy az újonnan létrehozott gyökérbe. 3. A törlés algoritmusa Keressük meg a törlendő kulcsot tartalmazó levelet! Ha ilyen nincs, a törlés meghiúsul. Különben a törlő algoritnus futása vagy az A esettel fejeződik be; vagy a B esettel folytatódik, ami után a C eset (nullaszor, egyszer, vagy többször) ismédlődhet, és még a D eset is sorra kerülhet végül. A, A keresés során megtalált levélcsúcs egyben a gyökércsúcs is: 1. Töröljük a kulcsot és a hozzá tartozó mutatót a csúcsból! 2. Ha a csúcs tartalmaz még kulcsot, kész vagyunk. 3. Különben töröljük a fa egyetlen csúcsát, és üres fát kapunk. B, A keresés során megtalált levélcsúcs nem a gyökércsúcs: 1. Töröljük a kulcsot és a hozzá tartozó mutatót a levélcsúcsból! 2. Ha a levélcsúcs még tartalmaz elég kulcsot és mutatót, hogy teljesítse az invariánsokat, kész vagyunk. 3. Ha a levélcsúcsban már túl kevés kulcs van ahhoz, hogy teljesítse az invariánsokat, de a következő, vagy a megelőző testvérének több van, mint amennyi szükséges, osszuk el a kulcsokat egyenlően közte és a testvére között! Írjuk át a két testvér közös szülőjében a két testvérhez tartozó hasító kulcsot a két testvér közül a második minimumára! 4. Ha a levélcsúcsban már túl kevés kulcs van ahhoz, hogy teljesítse az invariánst, és a következő, valamint a megelőző testvére is a minimumon van, hogy teljesítse az invariánst, akkor egyesítsük egy vele szomszédos testvérével! Ennek során a két testvér közül a (balról jobbra sorrend szerinti) másodikból a kulcsokat és a hozzájuk tartozó mutatókat sorban átmásoljuk az elsőbe, annak eredeti kulcsai és mutatói után, majd a második testvért töröljük. Ezután meg kell ismételnünk a törlő algoritmust a szülőre, hogy eltávolítsuk a szülőből a hasító kulcsot (ami eddig elválasztotta a most egyesített levélcsúcsokat), a most törölt második testvérre hivatkozó mutatóval együtt.
5 5 / :23 C, Belső a gyökértől különböző csúcsból való törlés: 1. Töröljük a belső csúcs éppen most egyesített két gyereke közti hasító kulcsot és az egyesítés során törölt gyerekére hivatkozó mutatót a belső csúcsból! 2. Ha a belső csúcsnak van még floor(d/2) gyereke, (hogy teljesítse az invariánsokat) kész vagyunk. 3. Ha a belső csúcsnak már túl kevés gyereke van ahhoz, hogy teljesítse az invariánsokat, de a következő, vagy a megelőző testvérének több van, mint amennyi szükséges, osszuk el a gyerekeket és a köztük levő hasító kulcsokat egyenlően közte és a testvére között, a hasító kulcsok közé a testvérek közti (a közös szülőjükben lévő) hasító kulcsot is beleértve! A gyerekek és a hasító kulcsok újraelosztása során, a középső hasító kulcs a testvérek közös szülőjében a két testvérhez tartozó régi hasító kulcs helyére kerül úgy, hogy en reprezentálja a köztük megváltozott vágási pontot! (Ha a két testvérben a gyerekek összlétszáma páratlan, akkor az újraelosztás után is annak a testvérnek legyen több gyereke, akinek előtte is több volt!) 4. Ha a belső csúcsnak már túl kevés gyereke van ahhoz, hogy teljesítse az invariánst, és a következő, valamint a megelőző testvére is a minimumon van, hogy teljesítse az invariánst, akkor egyesítsük egy vele szomszédos testvérével! Az egyesített csúcsot a két testvér közül a (balról jobbra sorrend szerinti) elsőből hozzuk létre. Gyerekei és hasító kulcsai először a saját gyerekei és hasító kulcsai az eredeti sorrendben, amiket a két testvér közti (a közös szülőjükben lévő) hasító kulcs követ, és végül a második testvér gyerekei és hasító kulcsai jönnek, szintén az eredeti sorrendben. Ezután töröljük a második testvért. A két testvér egyesítése után meg kell ismételnünk a törlő algoritmust a közös szülőjükre, hogy eltávolítsuk a szülőből a hasító kulcsot (ami eddig elválasztotta a most egyesített testvéreket), a most törölt második testvérre hivatkozó mutatóval együtt. D, A gyökércsúcsból való törlés, ha az nem levélcsúcs: 1. Töröljük a gyökércsúcs éppen most egyesített két gyereke közti hasító kulcsot és az egyesítés során törölt gyerekére hivatkozó mutatót a gyökércsúcsból! 2. Ha a gyökércsúcsnak van még 2 gyereke, kész vagyunk. 3. Ha a gyökércsúcsnak csak 1 gyereke maradt, akkor töröljük a gyökércsúcsot, és a megmaradt egyetlen gyereke legyen az új gyökércsúcs! (Ekkor a B+ fa magassága csökken.) Eredeti:
6 A 13 törlése: A 15 egyedül marad, a 16-ot átveszi a jobboldali testvérétől, majd a szülőjükben átíródik a hasító kulcs. A 15 törlése: A két testvér levél egyesül, a 20 hasító kulcs törlődik a szülőből, aminek 1 gyereke marad, és egyet átvesz a testvérétől; a 13 a nagyszülőből lejön, és a 11 a 13 helyére megy. Az 1 törlése: (4;9;10) egyesül, szülők egyesülnek, 11 lejön az egyesült szülőbe, a gyökérnek 1 gyereke marad: törlődik. 6 / :23
file:///d:/okt/ad/jegyzet/ad1/b+fa.html
1 / 5 2016. 11. 30. 12:58 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes
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.
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. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás
B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés
10. előadás Speciális többágú fák
10. előadás Adatszerkezetek és algoritmusok előadás 2018. április 17., és Debreceni Egyetem Informatikai Kar 10.1 A többágú fák kezelésére nincsenek általános elvek, implementációjuk elsősorban alkalmazásfüggő.
17. A 2-3 fák és B-fák. 2-3 fák
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
Algoritmusok és adatszerkezetek gyakorlat 07
Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet
Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?
Ugrólisták Ugrólisták Ugrólisták Ugrólisták RSL Insert Example insert(22) with 3 flips 13 8 29 20 10 23 19 11 2 13 22 8 29 20 10 23 19 11 2 Runtime? Ugrólisták Empirical analysis http://www.inf.u-szeged.hu/~tnemeth/alga2/eloadasok/skiplists.pdf
10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28.
10. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28. 2-3 fák Hatékony keresőfa-konstrukció. Ez is fa, de a binárisnál annyival bonyolultabb hogy egy nem-levél csúcsnak 2 vagy 3 fia
Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)
Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),
Rendezések. Összehasonlító rendezések
Rendezések Összehasonlító rendezések Remdezés - Alapfeladat: Egy A nevű N elemű sorozat elemeinek nagyság szerinti sorrendbe rendezése - Feltételezzük: o A sorozat elemei olyanok, amelyekre a >, relációk
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:
7 7, ,22 13,22 13, ,28
Általános keresőfák 7 7,13 13 13 7 20 7 20,22 13,22 13,22 7 20 25 7 20 25,28 Általános keresőfa Az általános keresőfa olyan absztrakt adatszerkezet, amely fa és minden cellájában nem csak egy (adat), hanem
Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék
9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,
Fák 2009.04.06. 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
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa Témakörök 2 Fa (Tree): csomópontok
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
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 Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány
Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése Célok: gyors lekérdezés, gyors adatmódosítás, minél kisebb tárolási terület. Kezdetek Nincs általánosan legjobb optimalizáció. Az egyik
Fa (Tree): csomópontok (nodes) halmaza, amelyeket élek (edges) kötnek össze, és teljesülnek az alábbi feltételek:
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás Piros-fekete fa B-fa 2 Fa
Keresőfák és nevezetes algoritmusaikat szemléltető program
EÖTVÖS LORÁND TUDOMÁNYEGYETEM INFORMATIKAI KAR Algoritmusok és Alkalmazásaik Tanszék Keresőfák és nevezetes algoritmusaikat szemléltető program Témavezető: Veszprémi Anna Mestertanár Szerző: Ujj László
A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:
A programozás alapjai 1 Dinamikus adatszerkezetek:. előadás Híradástechnikai Tanszék Dinamikus adatszerkezetek: Adott építőelemekből, adott szabályok szerint felépített, de nem rögzített méretű adatszerkezetek.
Adatszerkezetek és algoritmusok
2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú
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
Keresés Rendezés Feladat 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 2016. november 7. Farkas B., Fiala
Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 8. előadás (Horváth Gyula anyagai felhasználásával) Kereső- és rendezőfák Közös tulajdonságok: A gyökérelem (vagy kulcsértéke) nagyobb vagy egyenlő minden tőle balra levő elemnél. A
Hierarchikus adatszerkezetek
5. előadás Hierarchikus adatszerkezetek A hierarchikus adatszerkezet olyan < A, R > rendezett pár, amelynél van egy kitüntetett r A gyökérelem úgy, hogy: 1. r nem lehet végpont, azaz a A esetén R(a,r)
Buborékrendezés: Hanoi Tornyai: Asszimptótikus fv.ek: Láncolt ábrázolás: For ciklussal:
Buborékrendezés: For ciklussal: Hanoi Tornyai: Asszimptótikus fv.ek: Láncolt ábr.: ha p egy mutató típusú változó akkor p^ az általa mutatott adatelem, p^.adat;p^.mut. A semmibe mutató ponter a NIL.Szabad
Haladó rendezések. PPT 2007/2008 tavasz.
Haladó rendezések szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Alapvető összehasonlító rendezések Shell rendezés Kupacrendezés Leszámláló rendezés Radix rendezés Edényrendezés
Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.
Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom 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
Rendezettminta-fa [2] [2]
Rendezettminta-fa Minden p ponthoz tároljuk a p gyökerű fa belső pontjainak számát (méretét) Adott elem rangja: az elem sorszáma (sorrendben hányadik az adatszekezetben) Adott rangú elem keresése - T[r]
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
Ellenőrző kérdések 2. Kis dolgozat kérdései 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 37. Ha t szintű indexet használunk,
Adatszerkezetek 7a. Dr. IványiPéter
Adatszerkezetek 7a. Dr. IványiPéter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér () Nincsennek hurkok!!! 2 Bináris fák Azokat a
Adatszerkezet - műveletek
Adatszerkezet - műveletek adatszerkezet létrehozása adat felvétele adat keresése adat módosítása adat törlése elemszám visszaadása minden adat törlése (üresít) adatszerkezet felszámolása (megszüntet) +
Táblázatok fontosabb műveletei 1
Táblázatok fontosabb műveletei 1 - - Soros táblázat procedure BESZÚR1(TÁBLA, újelem) - - beszúrás soros táblázatba - - a táblázatot egy rekordokat tartalmazó dinamikus vektorral reprezentáljuk - - a rekordok
Algoritmuselmélet 2. előadás
Algoritmuselmélet 2. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezés
R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský
R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský Recenzió: Németh Boldizsár Térbeli indexelés Az adatszerkezetek alapvetően fontos feladata, hogy
Elemi adatszerkezetek
2017/12/16 17:22 1/18 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
Algoritmusok és adatszerkezetek II.
Szegedi Tudományegyetem - Természettudományi és Informatikai Kar - Informatikai Tanszékcsoport - Számítógépes Algoritmusok és Mesterséges Intelligencia Tanszék - Németh Tamás Algoritmusok és adatszerkezetek
Példa 30 14, 22 55,
Piros-Fekete fák 0 Példa 14, 22 55, 77 0 14 55 22 77 Piros-Fekete fák A piros-fekete fa olyan bináris keresőfa, amelynek minden pontja egy extra bit információt tartalmaz, ez a pont színe, amelynek értékei:
Térinformatikai adatszerkezetek
Térinformatikai adatszerkezetek 1. Pont Egy többdimenziós pont reprezentálható sokféle módon. A választott reprezentáció függ attól, hogy milyen alkalmazás során akarjuk használni, és milyen típusú műveleteket
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat
Egyenletek, egyenletrendszerek, egyenlőtlenségek Megoldások
) Egyenletek, egyenletrendszerek, egyenlőtlenségek - megoldások Egyenletek, egyenletrendszerek, egyenlőtlenségek Megoldások a) Oldja meg a valós számok halmazán az alábbi egyenletet! = 6 (5 pont) b) Oldja
Adatbáziskezelés. Indexek, normalizálás NZS 1
Adatbáziskezelés Indexek, normalizálás NZS 1 Fáljszervezés módjai Soros elérés: a rekordok a fájlban tetszőleges sorrendben, például a felvitel sorrendjében helyezkednek el. A rekord azonosítója vagyis
5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.
5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus. Optimalis feszítőfák Egy összefüggő, irányítatlan
Módosítható Prioritási sor Binomiális kupaccal. Wednesday, March 21, 12
Módosítható Prioritási sor Binomiális kupaccal modosit(x,k) {! if (k>x.kulcs) {!! x.kulcs=k ;!! y=x!! z=x.apa ;!! while(z!=nil and y.kulcs
Algoritmusok és adatszerkezetek gyakorlat 09 Rendezések
Algortmusok és adatszerkezetek gyakorlat 09 Rendezések Néhány órával ezelőtt megsmerkedtünk már a Merge Sort rendező algortmussal. A Merge Sort-ról tuduk, hogy a legrosszabb eset dőgénye O(n log n). Tetszőleges
Algoritmusok és adatszerkezetek II.
Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 5. Vágható-egyesíthető Halmaz adattípus megvalósítása önszervező
Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).
Edényrendezés Tegyük fel, hogy a rendezendő H = {a 1,...,a n } halmaz elemei a [0,1) intervallumba eső valós számok. Vegyünk m db vödröt, V [0],...,V [m 1] és osszuk szét a rendezendő halmaz elemeit a
6. előadás. Kiegyensúlyozottság, AVL-fa, piros-fekete fa. Adatszerkezetek és algoritmusok előadás március 6.
6. előadás, AVL-fa, piros-fekete fa Adatszerkezetek és algoritmusok előadás 2018. március 6.,, és Debreceni Egyetem Informatikai Kar 6.1 Általános tudnivalók Ajánlott irodalom: Thomas H. Cormen, Charles
Tuesday, March 6, 12. Hasító táblázatok
Hasító táblázatok Halmaz adattípus U (kulcsuniverzum) K (aktuális kulcsok) Függvény adattípus U (univerzum) ÉT (értelmezési tartomány) ÉK (érték készlet) Milyen az univerzum? Közvetlen címzésű táblázatok
Algoritmusok és adatszerkezetek II.
Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 3. Kiegyensúlyozott keresőfák A T tulajdonság magasság-egyensúlyozó
Algoritmusok és adatszerkezetek 2.
Algoritmusok és adatszerkezetek 2. Varga Balázs gyakorlata alapján Készítette: Nagy Krisztián 1. gyakorlat Nyílt címzéses hash-elés A nyílt címzésű hash táblákban a láncolással ellentétben egy indexen
Programozás alapjai. 8. előadás
8. előadás Wagner György Általános Informatikai Tanszék Azonosítók érvényességi köre Kiindulási alap: a blokkszerkezetű programozási nyelvek (C, FORTRAN, PASCAL, ) Egy program szerkezete: Fejléc Deklarációsrész
Bináris keresőfa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor
Bináris keresőfa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Bináris keresőfa Rekurzív
Adatszerkezetek 1. előadás
Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk
Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3
Síkgráfok Kuratowski-tétel: egy gráf akkor és csak akkor síkba rajzolható gráf, ha nincs olyan részgráfja, ami a K 5 -el, vagy a K 3,3 -altopologikusan izomorf (homeomorf). Euler síkgráfokra vonatkozó
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.
Kiválasztás kupaccal A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E
5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Exponenciális és Logaritmikus kifejezések
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Eponenciális és Logaritmikus kifejezések A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos
Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Trigonometria Megoldások. 1) Igazolja, hogy ha egy háromszög szögeire érvényes az alábbi összefüggés: sin : sin = cos + : cos +, ( ) ( )
Trigonometria Megoldások Trigonometria - megoldások ) Igazolja, hogy ha egy háromszög szögeire érvényes az alábbi összefüggés: sin : sin = cos + : cos +, ( ) ( ) akkor a háromszög egyenlő szárú vagy derékszögű!
Felvételi tematika INFORMATIKA
Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.
Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.
Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia
Kétszemélyes játékok Kétszemélyes, teljes információjú, véges, determinisztikus,zéró összegű játékok Két játékos lép felváltva adott szabályok szerint, amíg a játszma véget nem ér. Mindkét játékos ismeri
Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor
Láncolt listák Egyszerű, rendezett és speciális láncolt listák előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Láncolt
Egyesíthető prioritási sor
Egyesíthető prioritási sor Értékhalmaz: EPriSor = S E, E-n értelmezett a lineáris rendezési reláció. Műveletek: S,S 1,S 2 : EPriSor, x : E {Igaz} Letesit(S, ) {S = /0} {S = S} Megszuntet(S) {} {S = S}
Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában
Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Trigonometria
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Trigonometria A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett
EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF
Összefoglaló Gráfok / EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Adott a G = (V, E) gráf ahol a V a csomópontok, E az élek halmaza E = {(x, y) x, y V, x y (nincs hurokél) és (x, y) = (y, x)) Jelölések:
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként
Kupac adatszerkezet. 1. ábra.
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Exponenciális és logaritmikus kifejezések Megoldások
Eponenciális és logaritmikus kifejezések - megoldások Eponenciális és logaritmikus kifejezések Megoldások ) Igazolja, hogy az alábbi négy egyenlet közül az a) és jelű egyenletnek pontosan egy megoldása
Egyirányban láncolt lista
Egyirányban láncolt lista A tárhely (listaelem) az adatelem értékén kívül egy mutatót tartalmaz, amely a következő listaelem címét tartalmazza. A láncolt lista első elemének címét egy, a láncszerkezeten
Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.
Bevezetés 1. Definíció. Az alsó egészrész függvény minden valós számhoz egy egész számot rendel hozzá, éppen azt, amely a tőle nem nagyobb egészek közül a legnagyobb. Az alsó egészrész függvény jele:,
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-KEZELÉS ALAPOK Főbb Adattípusok: Igen/Nem Bájt Ez az adattípus logikai adatok tárolására alkalmas. A logikai adatok mindössze két értéket vehetnek fel. (Igen/Nem, Igaz/Hamis, Férfi/Nő, Fej/Írás
Számláló rendezés. Példa
Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással való összehasonlítása alapján működik leírja egy bináris döntési fa. Az algoritmus által a
Önszervező bináris keresőfák
Önszervező bináris keresőfák Vágható-egyesíthető halmaz adattípus H={2,5,7,11,23,45,75} Vag(H,23) Egyesit(H1,H2) H1= {2,5,7,11} H2= {23,45,75} Vágás A keresési útvonal mentén feldaraboljuk a fát, majd
2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)
A Név: l 2017.04.06 Neptun kód: Gyakorlat vezet : HG BP l 1. Az A vektor tartalmát az alábbi KUPACOL eljárással rendezzük át maximum kupaccá. A={28, 87, 96, 65, 55, 32, 51, 69} Mi lesz az értéke az A vektor
Láncolt listák Témakörök. Lista alapfogalmak
Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Lista alapfogalmai Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Speciális láncolt listák Témakörök
7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet
7. BINÁRIS FÁK Az előző fejezetekben már találkoztunk bináris fákkal. Ezt a központi fontosságú adatszerkezetet most vezetjük be a saját helyén és az általános fák szerepét szűkítve, csak a bináris fát
Egészrészes feladatok
Kitűzött feladatok Egészrészes feladatok Győry Ákos Miskolc, Földes Ferenc Gimnázium 1. feladat. Oldjuk meg a valós számok halmazán a { } 3x 1 x+1 7 egyenletet!. feladat. Bizonyítsuk be, hogy tetszőleges
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Exponenciális és Logaritmikus kifejezések
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Eponenciális és Logaritmikus kifejezések A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szoálhatnak fontos információval
15. A VERSENYRENDEZÉS
15. A VERSENYRENDEZÉS A versenyrendezés (tournament sort) a maximum-kiválasztó rendezések közé tartozik, ugyanis az elemek közül újra és újra kiválasztja (eltávolítja és kiírja) a legnagyobbat. Az eljárás
elektronikus adattárolást memóriacím
MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása
Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)
Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
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
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 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás
Algoritmusok és adatszerkezetek I. 5. előadás
Algoritmusok és adatszerkezetek I. 5. előadás Táblázat A táblázat olyan halmazféleség, amelyben az elemeket kulcsértékkel azonosítjuk. A szokásos halmazműveletekből azonban csak néhányat definiálunk rá:
Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Adatszerkezetek Hasító táblák. Dr. Iványi Péter
Adatszerkezetek Hasító táblák Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a
16. Az AVL-fa. (Adelszon-Velszkij és Landisz, 1962) Definíció: t kiegyensúlyozott (AVL-tulajdonságú) t minden x csúcsára: Pl.:
6. Az AVL-fa Adelszo-Velszkij és Ladisz, 96 Defiíció: t kiegyesúlyozott AVL-tulajdoságú t mide x csúcsára: bal x jobb x. Pl.: A majdem teljes biáris fa AVLtulajdoságú. Az AVL-fára, mit speciális alakú
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.
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
Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám
Fogalmak: Adatbázis: logikailag összefüggő információ vagy adatgyőjtemény. Tábla: logikailag összetartozó adatok sorokból és oszlopokból álló elrendezése. Adatbázis sorai: (adat)rekord Adatbázis oszlopai:
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2015. ősz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2015.
Református Iskolák XX. Országos Matematikaversenye osztály
1. Pisti beledobott egy kezdetben üres - kosárba valahány piros és kék labdát, amelyeknek legalább 90%-a piros. Jenő találomra kivett 50 labdát, közöttük 49 piros volt. Julcsi megnézte a kosárban maradt
Alapvető fizikai tárolási szerkezetek, indexek, B-fák
Alapvető fizikai tárolási szerkezetek, indexek, B-fák Takács Gábor mérnök informatikus, okl. mérnöktanár takacsg@sze.hu http://rs1.sze.hu/~takacsg/ Adatelemek ábrázolása Adatokat bájtok sorozatával tárolunk!
Algoritmusok és adatszerkezetek I. 1. előadás
Algoritmusok és adatszerkezetek I 1 előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: elemi (vagy skalár, vagy strukturálatlan) összetett (más szóval strukturált) Strukturálási
Adatszerkezetek I. 6. előadás
Adatszerkezetek I. 6. előadás Táblázat A táblázat olyan halmazféleség, amelyben az elemeket kulcsértékkel azonosítjuk. A szokásos halmazműveletekből azonban csak néhányat definiálunk rá: Üres: Táblázat
Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások
Megoldások 1. Oldd meg a következő egyenleteket! (Alaphalmaz: R) a) log 4 (x ) = 3 b) lg (x 4) = lg (8x 10) c) log x + log 3 = log 15 d) log x 0x log x 5 = e) log 3 (x 1) = log 3 4 f) log 5 x = 4 g) lg
14. Mediánok és rendezett minták
14. Mediánok és rendezett minták Kiválasztási probléma Bemenet: Azonos típusú (különböző) elemek H = {a 1,...,a n } halmaza, amelyeken értelmezett egy lineáris rendezési reláció és egy i (1 i n) index.
Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor
Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2
15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30.
15. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30. Edényrendezés Tegyük fel, hogy tudjuk, hogy a bemenő elemek (A[1..n] elemei) egy m elemű U halmazból kerülnek ki, pl. " A[i]-re