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



Hasonló dokumentumok
Elemi adatszerkezetek

Algoritmuselmélet 2. előadás

Adatszerkezetek 7a. Dr. IványiPéter

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

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

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

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

NBI/B Nıi Keleti csoport bajnokság évi sorsolása

Algoritmusok és adatszerkezetek II.

TARTALOMJEGYZÉK ELŐSZÓ ÉVI I. TÖRVÉNY A MUNKA TÖRVÉNYKÖNYVÉRŐL*.4 ELSŐ RÉSZ ÁLTALÁNOS RENDELKEZÉSEK.4 I. FEJEZET BEVEZETŐ RENDELKEZÉSEK.

Hierarchikus adatszerkezetek

ÍRÁSBELI SZAVAZÁS /ELJÁRÁSI SZABÁLYOK/ FŰTÉSI ENERGIAKÖLTSÉG-CSÖKKENTÉS 2013.

elérhetősége: 1037 Budapest, Csillaghegyi út 25. postacím: 1300 Budapest, Pf.: 152., tel: , fax:

Adatszerkezetek 1. előadás

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Köszönetnyilvánítás... xv Bevezetés az otthoni hálózatok használatába... xvii. A könyv jellegzetességei és jelölései... xxi Segítségkérés...

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

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

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Adatszerkezetek és algoritmusok

1. Bevezetés A C++ nem objektumorientált újdonságai 3

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

Összefoglaló tájékoztatás visszavonása

TARTALOMJEGYZÉK EL SZÓ...7 GYAKRABBAN HASZNÁLT RÖVIDÍTÉSEK ÉVI XCIII. TÖRVÉNY AZ ILLETÉKEKR L...9

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

A félév során előkerülő témakörök

TARTALOMJEGYZÉK ELŐSZÓ ÉVI III. TÖRVÉNY A POLGÁRI PERRENDTARTÁSRÓL ELSŐ RÉSZ ÁLTALÁNOS RENDELKEZÉSEK I.

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

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

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

NB I/B nők kelet

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Algoritmusok és adatszerkezetek gyakorlat 07

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

dr. Gyulai László Illés Ivánné dr. Paróczai Péterné dr. Sándorné Új Éva PÉNZÜGYEK PÉLDATÁR a mérlegképes könyvelõk írásbeli vizsgáihoz

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Algoritmusok vektorokkal keresések 1

Programozási technológia

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

Gyakorló feladatok ZH-ra

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

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

GRÁFOK ÉS ALGORITMUSOK ELMÉLETE VIZSGAKÉRDÉSEK Matematika BSc Elemző szakirány II. év 1. félév

Dr. Schuster György február / 32

Egyirányban láncolt lista

3.f. fond Református Szeretetszolgálat intézményeinek iratai

BÉLYEGZŐK NYILVÁNTARTÁSA

Generikus osztályok, gyűjtemények és algoritmusok

A kormányzati infokommunikáció új útjai

A projekt programjának és állásának ismertetése

, , , (+36-1) ,

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

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

Ismerkedés az Office 2007 felhasználói felületével

Adatszerkezetek 2. Dr. Iványi Péter

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

KERÜLETI HELYI ADÓK (ÉPÍTMÉNYADÓ, TELEKADÓ, IDEGENFORGALMI ADÓ) MÉRTÉKE 2009., 2010., 2011., ÉVBEN

Az Veszprém Megyei Katasztrófavédelmi Igazgatóság irányítási rendje

I/A.sz. kút műszaki adatai. Kateszteri szám: K-247 Kút melléfúrásos felújítása: Csövezett kút talpmélysége: 80 m.

A programozás alapjai 1 Rekurzió

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

Információs Technológia

Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság

Mérkőző csapatok Időpont Megjegyzés/ CSAPAT. Ford. HAZAI VENDÉG Hó,nap Óra Elfogadva 1/6 NB I NŐK KELET KÉZILABDA Sorsz.

Illek Vince utca. Attila utca 6 6/A 8 8/A. Deák Ferenc utca (72195) (72182) Mentőállomás. Speciális Általános Iskola (72183/1) (72203)

Hatékonyság 1. előadás

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

Tartalomjegyzék. Typotex Kiadó III. Tartalomjegyzék

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Mérkőző csapatok Időpont Megjegyzés/ CSAPAT. Ford. HAZAI VENDÉG Hó,nap Óra Elfogadva. 1/6 NB I NŐK évi ALAPSZAKASZ Sorsz.

Adatszerkezetek 2. Dr. Iványi Péter

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

3. Fehérvár KC Mosonmagyaróvári KC SE 4. Dunaújvárosi KKAMTK 5. FTC Rail Cargo Hungaria DVSC 6. Ipress Center VácBékéscsabai ENKSE

Algoritmusokfelülnézetből. 1. ELŐADÁS Sapientia-EMTE

Grafikonok automatikus elemzése

Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel. Az objektumok áthaladnak a többi objektumon

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

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.

TANMENET. a matematika tantárgy tanításához 11.E osztályok számára

Csontsebészeti implantátumok 12 hónapra konszignációs raktár üzemeltetésével

4. Előfeltételek (ha vannak) 4.1 Tantervi Nincs 4.2 Kompetenciabeli Elemi algoritmusok ismerete

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás

Láncolt listák Témakörök. Lista alapfogalmak

Osztályozóvizsga és javítóvizsga témakörei Matematika 9. évfolyam

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

A termékenység területi különbségei

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

Konföderáció Ágazati szakszervezet 2011.februári taglétszám (fő) SZEF Bölcsödei Dolgozók Demokratikus Szakszervezete. SZEF Pedagógusok Szakszervezete

Budapesti mozaik 5. Lakáshelyzet

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.

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

21. Adatszerkezetek Az adattípus absztrakciós szintjei Absztrakt adattípus (ADT) Absztrakt adatszerkezet (ADS) Egyszerű adattípusok Tömbök

...BAJNOKSÁG. ... /... évben

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

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.

8. előadás Kis László Szabó Balázs 2012.

Fuzzy halmazok jellemzői

NT Matematika 11. (Heuréka) Tanmenetjavaslat

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

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Átírás:

Köszönetnyilvánítás Bevezetés Kinek szól a könyv? Elvárt előismeretek A könyv témája A könyv használata A megközelítés alapelvei Törekedjünk az egyszerűségre! Ne optimalizáljunk előre! Felhasználói interfészek Tesztelni, tesztelni! Legyünk alaposak! Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xi xiii xiii xiii xiv xiv xv xvi xvi xvii xvii xviii xix xx xxi xxi xxii 1. Az alapok 1 Az algoritmusok definíciója 1 Az algoritmusok bonyolultsága 4 A nagy O jelölés 5 Konstans idő: O(1) 7 Lineáris idő: O(N) 7 Kvadratikus idő: O(N 2 ) 8 Logaritmikus idő: O(log N) és O(N log N) 9 Faktoriális idő: O(N!) 9 Egységtesztelés 10 Mi az egységtesztelés? 11 Miért fontos az egységtesztelés? 13 JUnit-bevezető 13 Tesztelésen alapuló programozás 17 Összefoglalás 18

2. Iteráció és rekurzió 19 Számítások végrehajtása 20 Tömbök feldolgozása 22 Iterátorok használata tömbalapú problémák megoldására 23 Rekurzió 42 Rekurzív könyvtárfa-nyomtatási példa 44 A rekurzív algoritmus működése 47 Összefoglalás 48 Gyakorlatok 49 3. Listák 51 A listákról 51 A listák tesztelése 55 Listák megvalósítása 68 A tömblista 69 Láncolt lista 77 Összefoglalás 87 Gyakorlatok 87 4. Várakozási sorok 89 A sorok 89 Sorműveletek 90 A sorinterfész 91 A FIFO-sor 92 A FIFO-sor megvalósítása 96 Blokkolósorok 97 Példa: telefonos ügyfélszolgálat szimulátora 102 Az alkalmazás futtatása 112 Összefoglalás 114 Gyakorlatok 114 5. Vermek 115 Vermek 115 A tesztek 118 Megvalósítás 121 Példa: az undo/redo parancs megvalósítása 124 Az undo/redo parancs tesztelése 125 Összefoglalás 134 vi

6. Alapvető rendezés 135 A rendezés fontossága 135 Rendezési alapismeretek 136 Az összehasonlítókról 137 Összehasonlító műveletek 137 Az összehasonlító interfész 138 Néhány szabványos összehasonlító 138 A buborékrendezésről 143 A ListSorter interfész 146 Az AbstractListSorter tesztelése 146 A kiválasztásos rendezés alkalmazása 151 A beszúrásos rendezésről 156 A stabilitásról 160 Az alapvető rendezési algoritmusok összehasonlítása 161 CallCountingListComparator 162 ListSorterCallCountingTest 163 Az algoritmus-összehasonlításról 166 Összefoglalás 167 Gyakorlatok 168 7. Fejlettebb rendezés 169 A Shell-rendezési algoritmus alapjai 169 A gyorsrendezésről 175 Az összetett összehasonlítóról és a stabilitásról 182 Az összefésüléses rendezési algoritmusról 186 Összefésülés 186 Az összefésüléses rendezési algoritmus 187 A fejlettebb rendezési algoritmusok összehasonlításáról 194 Összefoglalás 198 Gyakorlatok 198 8. Prioritásos sorok 199 A prioritásos sorok áttekintése 199 Egyszerű példa prioritásos sorra 200 Prioritásos sorok kezelése 203 Rendezetlen listás prioritásos sor áttekintése 206 Rendezetlen listás prioritásos sor megvalósítása 208 Halmon alapuló prioritásos sorok működése 210 Prioritásos sorok megvalósításainak összehasonlítása 219 Összefoglalás 222 Gyakorlatok 223 vii

9. Bináris keresés és beszúrás 225 A bináris keresés működése 225 A bináris keresés megközelítései 228 Listabeli kereső 228 Iteratív bináris kereső 236 A listabeli kereső teljesítményének vizsgálata 238 Bináris beszúrás működése 245 Listabeszúró 246 Teljesítmény vizsgálata 250 Összefoglalás 254 10. Bináris keresőfák 257 A bináris keresőfákról 257 Minimum 258 Maximum 259 A következő csomópont 259 A megelőző csomópont 260 Keresés 260 Beszúrás 262 Törlés 264 Inorder bejárás 266 Preorder bejárás 267 Posztorder bejárás 267 Kiegyensúlyozás 268 A bináris keresőfa tesztelése és megvalósítása 270 A bináris keresőfa teljesítményének megállapítása 295 Összefoglalás 299 Gyakorlatok 299 11. Hasítás 301 A hasítás megértése 301 Munka a hasítással 309 Lineáris vizsgálat 312 Vödrös módszer 319 A teljesítmény megállapítása 324 Összefoglalás 331 Gyakorlatok 331 12. Halmazok 333 A halmazokról 333 Halmazmegvalósítások tesztelése 337 Listahalmaz 344 viii

Hasítóhalmaz 346 Fahalmaz 350 Összefoglalás 357 Gyakorlatok 358 13. Leképezések 359 A leképezésekről 359 Leképezésmegvalósítások vizsgálata 364 Listaleképezés 373 Hasítóleképezés 377 Faleképezés 381 Összefoglalás 388 Gyakorlatok 389 14. Hármas keresőfák 391 Hármas keresőfák 391 Szó keresése 392 Szó beszúrása 396 Prefix keresés 398 Mintaillesztés 399 A hármas keresőfák gyakorlati alkalmazása 403 Keresztrejtvény megoldását segítő példa 417 Összefoglalás 422 Gyakorlat 422 15. B-fák 423 A B-fákról 423 B-fák a gyakorlatban 429 Összefoglalás 443 Gyakorlatok 443 16. Sztringkeresés 445 Általános sztringkereső interfész 445 Általános tesztcsomag 447 Letámadásos algoritmus 451 A Boyer Moore-algoritmus 454 A tesztek létrehozása 456 Az algoritmus megvalósítása 457 Sztringillesztő iterátor 461 A teljesítmény összehasonlítása 462 A teljesítmény mérése 463 Az összehasonlítás eredménye 467 Összefoglalás 468 ix

17. Sztringillesztés 471 A Soundex algoritmus 471 A Levenshtein-szótávolság 483 Összefoglalás 494 18. Számítógépes geometria 495 Rövid geometriai ismétlés 495 Koordináták és pontok 495 Egyenes szakaszok 497 Háromszögek 497 Két egyenes szakasz metszéspontjának meghatározása 498 Meredekség 499 Az y tengely metszése 500 A metszéspont meghatározása 501 A legközelebbi pontpár meghatározása 517 Összefoglalás 529 Gyakorlatok 529 19. Pragmatikus optimalizálás 531 Az optimalizálás szerepe 531 A profilírozásról 533 A FileSortingHelper példaprogram 534 Profilírozás a hprof modullal 538 Profilírozás a Java Memory Profiler programmal 541 Az optimalizálásról 543 Optimalizálás a gyakorlatban 544 Összefoglalás 552 A függelék: Ajánlott irodalom 553 B függelék: Internetes források 555 C függelék: Bibliográfia 557 D függelék: A gyakorlatok megoldásai 559 Tárgymutató 609 A szerzőkről 621 x