Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:

Slides:



Advertisements
Hasonló előadás
A Floyd-Warshall algoritmus
Advertisements

Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Programozási tételek, és „négyzetes” rendezések
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Készítette: Major Máté
Készítette: Mester Tamás METRABI.ELTE.  Egy bemeneten kapott szöveg(karakter sorozat) méretét csökkenteni, minél kisebb méretűre minél hatékonyabb algoritmussal.
Matematika II. 4. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Copyright, 2009 © Szlávi Péter A kupac és a prioritási sor típuskonstrukciók Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
AVL-fa építése.
Minimális költségű feszítőfák
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1.
Szélességi bejárás Párhuzamosítása.
Készítette Schlezák Márton
Programozási alapismeretek 10. előadás
Minimax és problémaredukció, egyszerű példák INCK431 Előadó: Dr. Nagy Benedek Norbert Gyakorlatvezető: Kovács Zita 2011/2012. II. félév A MESTERSÉGES INTELLIGENCIA.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
1 Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat 1. Bevezetés Miskolc, 2004.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Programozó matematikus szak 2003/2004-es tanév II. félév
AVL fák.
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
Fák, bináris fák INFOÉRA Ez így 60 perc.
Számoljuk meg rekurzív függvénnyel egy bináris fa leveleit!
Prím algoritmus.
H A S H E L É S M Ű V E L E T E I N Y Í L T C Í M Z É S S E L S L I D E 01 HASHELÉS MŰVELETEI NYÍLT CÍMZÉSSEL Készítette Juhász Zoltán Gyakorlatvezető.
Figyelmeztetés! E program használata fokozottan
Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Nevezetes algoritmusok Beszúrás Van egy n-1 elemű rendezett tömbünk. Be akarunk szúrni egy n-edik elemet. Egyik lehetőség, hogy végigszaladunk a tömbön,
Gráfelmélet: Fák.
Ideális folyadékok időálló áramlása

4 Négyzet probléma Készen vagy? B A
Fák.
Programozási alapismeretek 11. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom  Rendezési.
Készítette: Hanics Anikó. Az algoritmus elve: Kezdetben legyen n db kék fa, azaz a gráf minden csúcsa egy-egy (egy pontból álló) kék fa, és legyen minden.
A feladat : Építsünk AVL-fát a következő adatokból:100,170,74,81,136,185,150,122,52,190,144 (Az AVL-fa olyan bináris keresőfa, amelynek minden csúcsára.
Mélységi bejárás Az algoritmus elve: Egy kezdőpontból kiindulva addig megyünk egy él mentén, ameddig el nem jutunk egy olyan csúcsba, amelyből már nem.
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Elektronikus tananyag
BINÁRIS FA Definició: A fa olyanösszefüggő gráf, amelyben nincs kör
Példa kettő-három fa felépítésére - törlés művelet Készítette : Krizsai Petra
Osztott adatbázisok.  Gyors ismétlés: teljes redukáló  Teljes redukáló költsége  Természetes összekapcsolások vetítése  Természetes összekapcsolások.
Gráfok ábrázolása teljesen láncoltan
Útkeresések.
előadások, konzultációk
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
Bináris kereső fák Itterátorok.
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
DIJKSTRA- ALGORITMUS. A Dijkstra-algoritmus egy mohó algoritmus, amivel irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges gráfokban.
Algoritmusok és adatszerkezetek
(Bináris) Kupac (heap) adattípus
BFák Kiegyensúlyozott keresőfák
Mediánok és rendezett minták
Piros-fekete fák Beszúrás, ill. törléskor a fa elveszítheti az egyensúlyát. A piros-fekete fák: az egyensúly megtartását biztosítják. +1 bit információ.
Algoritmusok és Adatszerkezetek I.
Mesterséges intelligencia
Nem módosítható keresések
Algoritmusok és Adatszerkezetek I.
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
Adatbázisrendszerek elméleti alapjai 9. előadás
2-3-fák A 2-3-fa egy gyökeres fa az alábbi tulajdonságokkal:
Előadás másolata:

Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő: Imre Mihály, műszaki informatikus hallgató

Splay fa Splay: kiszélesedik, lesarkít, ferdére vág Garantálja – üres fából kiindulva –, hogy M egymás utáni fa művelet legfeljebb O(M log N) idejű. Általában, ha M művelet wc teljes ideje O(M F(N)) akkor az amortizált futási idő O(F(N)), ezért a splay fa műveleteinek amortizált ideje O(log N). Az alapelv: ha elértünk egy csúcsot, akkor azt egy sor AVL fa forgatással a gyökérbe nyomjuk. (Sok alkalmazásban, ha egyszer megkerestünk egy elemet, akkor valószínű, hogy a közeljövőben újból keressük, ez az eset gyakoribb, mint gondolnánk.) ! Nem kell a magasság információ ! 2

Splay fa Egy nem működő egyszerű ötlet: Minden csúcsot az elérési úton a szülőjével megforgatunk. 3 A k1k1 B C D E F k2k2 k3k3 k4k4 k5k5 A B C D k2k2 k1k1 k3k3 k 1 -k 2

Splay fa 4 k 1 -k 3 k 1 -k 4 A B E k2k2 k1k1 k4k4 k3k3 C D A B F k2k2 k1k1 k5k5 k4k4 E k3k3 C D

Splay fa 5 k 1 -k 5 A k 1 ugyan a gyökérbe került, de a k 3 majdnem olyan mélyre került, mint a k 1 volt... A B k2k2 k1k1 k5k5 F k4k4 E k3k3 C D

Splay fa Splaying Továbbra is alulról-felfelé forgatunk. Legyen X egy csúcs az elérési útvonalon (nem gyökér). Ha X szülője a gyökér, akkor egyszerűen megforgatjuk őket, ez lesz az útvonalon az utolsó forgatás. Különben van szülője (P) és nagyszülője (G). 6

Splay fa 1. eset : X jobb gyerek és P bal gyerek (vagy fordítva) dupla forgatás mint az AVL-nél 7 A G B P X D C A B C D P X G X P G B C A D Zig-Zag

Splay fa 2. eset: X és P mindegyike bal (jobb) gyerek 8 A B C D X P G P X G B C A D B A P X C G D Zig-Zig

Splay fa Az előző példa így: 9 A k1k1 B C D E F k2k2 k3k3 k4k4 k5k5 A B E k2k2 k1k1 k4k4 k3k3 C D k5k5 F k 1 -k 2 -k 3 Zig-Zag (AVL dupla)

Splay fa A k 1 helyzete kiváló, az egész laposodott, nagyobb példán jobban látszik. 10 A B E k2k2 k1k1 k4k4 k3k3 C D k5k5 F C D k3k3 k4k4 k5k5 E F k2k2 k1k1 A B k 1 -k 4 -k 5 Zig-Zig

Splay fa Implementáció nem rekurzív + szülő pointer

Splay fa felülről-lefelé Az alap splay-fánál: az X elemet levélként beszúrtuk, utána egy sor forgatással (splay) az X a fa új gyökere lett. A keresés folyamán is végeztünk splay-t. Ha az elem nem található, akkor az elérési út utolsó csúcspontjára végeztük a splay-t. Ehhez a stratégiához a fát be kell járni a gyökértől lefelé, majd a splay-hez alulról-felfelé. Ezt vagy a szülő pointerekkel, vagy az elérési út stackre tételével tudjuk megvalósítani. Most a forgatásokat az elérési út mentén hajtjuk végre. Ez a gyakorlatban gyorsabb, O(1) plusz hely kell, és az amortizált időkorlát O(log N) marad. 12

Splay fa felülről-lefelé Az elérés bármely pontján az aktuális csúcs X, az alfájának gyökere, ez lesz a középső fa. Az L fa az X-nél kisebb, de az X alfájában nem szereplő csúcsokat tárolja. Az R hasonlóan a T fa X-nél nagyobb, de X alfájában nem lévő csúcsokat tárolja. Kezdetben X a T gyökere, L és R üres. 13

Splay fa felülről-lefelé Zig: 14 L A Y X B R L A Y X B R A középső fa új gyökere Y lesz. Az X és a B alfa az R legkisebb elemének bal gyereke lesz, így R-ben a legkisebb elem az X lesz. Az Y-nak nem kell levélnek lennie a Zig-hez. Ha egy Y-nál kisebb elemet keresünk és az Y-nak nincs bal gyereke (jobb gyerekének kell lennie), akkor a Zig-et alkalmazzuk.

Splay fa felülről-lefelé Zig-Zig: 15 LR A Z X C Y B L A Z R X C Y B

Splay fa felülről-lefelé Zig-Zag: 16 LR B Z X C Y A LR B Z X C Y A Forgatás valójában nem történt.

Splay fa felülről-lefelé Egyszerűsített Zig-Zag: 17 LR B Z X C Y A LR B Z Y C X A Így a Zig-Zag csak egy Zig lesz és Y a középső gyökér Z helyett.

Splay fa felülről-lefelé Az utolsó splaying után összerakjuk a fákat: 18 L A X B R A L X R B

Splay fa felülről-lefelé Példa: a 19-et keressük 19 ü ü

Splay fa felülről-lefelé Egyszerűsített Zig-Zag ( ): ü 12 5

Splay fa felülről-lefelé Zig-Zig ( )

Splay fa felülről-lefelé Zig (15-18):

Splay fa felülről-lefelé Összerakás: