1 / 26

ALGORITMID JA ANDMESTRUKTUURID

ALGORITMID JA ANDMESTRUKTUURID. Jüri Kiho Jyri.Kiho@ut.ee http://www.cs.ut.ee/~kiho/ads/fall08. Teemad Algoritmi ajalise keerukuse mõiste. Funktsiooni asümptootilised hinnangud. Sorteerimise pistemeetod. Sorteerimise kiir- ja ühildusmeetod. Sorteerimise erimeetodid.

isabel
Download Presentation

ALGORITMID JA ANDMESTRUKTUURID

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORITMID JA ANDMESTRUKTUURID Jüri Kiho Jyri.Kiho@ut.ee http://www.cs.ut.ee/~kiho/ads/fall08

  2. Teemad Algoritmi ajalise keerukuse mõiste. Funktsiooni asümptootilised hinnangud. Sorteerimise pistemeetod. Sorteerimise kiir- ja ühildusmeetod. Sorteerimise erimeetodid. Sorteerimisülesande ajalise keerukuse alampiir. Järjestikpaigutus ja seotud paigutus. Paisksalvestus. Välisahelate ja lahtise adresseerimise meetodid. Puu ja kahendpuu. Algoritmid kahendpuu ja vastava hariliku puu töötlemiseks. Kahendotsimise puu. AVL-puu. B-puu. Klasside kujutamine. Kahendkuhi. Binomiaalkuhi. Alamsõne otsimine, Knuth-Morris-Pratti algoritm. Alamsõne otsimine, Rabin-Karpi algoritm. Teksti pakkimine, Huffmani algoritm. Pikima ühise osasõna otsimine.

  3. Eeldusgraafi analüüsimine. Graafi sügavuti läbimine. Graafi laiuti läbimine, Dijkstra algoritm. Graafi minimaalne toes, Kruskali algoritm. Graafi minimaalne toes, Primi algoritm. Planimeetria, pseudo-tõusunurga ja pöörde suuna leidmine. Planimeetria, punkti hulkurka kuuluvuse kontrollimine. Planimeetria, Grahami seiremeetod. Planimeetria, vähima vahemaaga punktipaari leidmine.

  4. Kirjandus • Jüri Kiho. Algoritmid ja andmestruktuurid. • Kolmas, parandatud ja täiendatud trükk. • TÜ, 2003, 147 lk. • 2. Jüri Kiho. Algoritmid ja andmestruktuurid. • Ülesannete kogu. TÜ, 2005, 31 lk. • 3. Ahti Peder, Helle Hein, Lauri Kimmel. • Objektorienteeritud programmeerimine. • Praktikumijuhend. TÜ, 2006, 82 lk.

  5. Eksam Eksamile pääsemiseks peavad kõik praktikumiülesanded olema arvestatud. Eksam on kirjalik (paberil). Kaasa võtta kirjutusvahend. Kõrvalist abi, kirjalikke materjale ega elektroonikaseadmeid ei tohi kasutada. Eksamiküsimused nõuavad vastust kas lühiessee kujul või testi vormis. Eksami temaatika – vt Kordamisküsimused (viimane slaid).

  6. I. Algoritmi ajaline keerukus: funktsioon f, mis igale selle algoritmi järgi lahendatavale konkreetsele ülesandele andmemahuga n seab vastavusse selle lahendamisel sooritatavate algoritmi sammude arvu f(n).

  7. II. Ajalise keerukuse hinnangud Olgu funktsioonid f ja g positiivsete väärtustega ja naturaalarvuliste argumentidega funktsioonid. Def. Öeldakse, et f on O(g), kui leidub c > 0 nii, et f (n) cg(n) , iga n korral (n > 0). Def. f on Ω(g), kui g on O(f). Def. f on Θ(g), kui f on O(g) ja g on O(f). f (n)/g(n) c f (n)/g(n) c1 ja g(n)/f(n) c2

  8. O-relatsiooni omadused Keerukusklassid NP-täielike ülesannete klass

  9. III. Massiivi sorteerimine Pistemeetod Insertion sort [1]-4.1 Ka AlgJava > Abi > Programmeerimine > Teemad > Järjend/massiiv > Sorteerimine > MassiivSortArvud.algjava Võrdlemistel põhinevate sorteerimisalgoritmide ajalise keerukuse alampiir Shelli meetod Shell sort[järgmine slaid] Kiirmeetod Quick sort [1]-4.2 Ühildusmeetod Merge sort [1]-4.3 Loendamismeetod Count sort[1]-4.5 Positsioonimeetod Radix sort [1]-4.5 Sorteerimismeetodi stabiilsuse mõiste Leksikograafilise järjestuse mõiste Ka AlgJava > Abi > Programmeerimine > Teemad > Sõnetüüp > Sõnetöötlus Sõnede võrdlemine> SõnedeVõrdlemine.algjava

  10. IV. Graaf Graafi mõiste [1]-2.4 Graafi tippude topoloogiline sorteerimine Eeldusgraafi analüüsimine [1]-6.1

  11. Graafi läbimine [1]-6.3 Graafi sügavuti läbimine Tee otsimine Graafi laiuti läbimine Otseteede leidmine Lühimate teede leidmine, Dijkstra algoritm [1]-6.2 Minimaalse toese leidmine, Primi algoritm [1]-6.4

  12. V. Puu [1]-2.3 Puu mõiste Kahendpuu mõiste Kahendpuu läbimine Puule (metsale) vastav kahendpuu Täielik kahendpuu, kompaktne kahendpuu Binomiaalpuu

  13. VI. Kuhjad [1]-3.4 Kahendkuhi Binomiaalkuhi

  14. VII. Otsimispuud Kahendotsimispuu [1] - lk 28-32 AVL-puu [1] - lk 33-34 B-puu [1] - lk 35-38

  15. VIII. Paigutusviise Järjestikpaigutus ja seotud paigutus [1] - lk 41-44 Päisega/päiseta lihtahel/ringahel Magasini/järjekorra realiseerimine ahelana Päisega lihtahela sorteerimine (kas pistemeetodil [1] – lk 61 või ühildusmeetodil [1] – lk 68-69) Paisksalvestus [1] - lk 45-48 Klasside kujutamine: Galler-Fischeri meetodi idee [1] - lk 49 Graafi minimaalse toese leidmine, Kruskali algoritm [1]-6.4

  16. IX. Kombinatoorika • Hulga alamhulgad • kõikide alamhulkade hulk • seljakotiülesanne • m kaupa kombinatsioonide hulk • Permutatsioonid

  17. s = kiho tulem.length = 16 tulem[]: _ o h ho i io ih iho k ko kh kho ki kio kih kiho

  18. s = jkiho mask = 13 = 1101 tulem: kio 2

  19. s = jkiho m = 3 tulem: iho kho kio kih jho jio jih jko jkh jki

  20. n = 4 tulem[]: 1234 1243 1423 4123 1324 1342 1432 4132 3124 3142 3412 4312 2134 2143 2413 4213 2314 2341 2431 4231 3214 3241 3421 4321

  21. X. Pikima ühise osasõne otsimine [1] – 5.3 Sõne kõikide osasõnede leidmisel põhinev algoritm Omadustel põhinev eksponentsiaalne rekursiivne algoritm Omadustel põhinev ruutkeerukusega, dünaamilise kavandamisega algoritm

  22. s = jürikiho t = ohikirüj PYotse(s, t) = iki

  23. aeg n 8 9 10 11 12 13 14 15 |s| = |t| = n

  24. XI. Alamsõne otsimine [1] – 5.1 Lihtne algoritm Knuth-Morris-Pratti algoritmi idee, prefiksfunktsiooni mõiste Rabin-Karpi algoritmi põhiidee

  25. Kordamisküsimused Algoritmi ajaline keerukus. Ajalise keerukuse hinnangud. Keerukusklassid. Sorteerimise pistemeetod. Sorteerimise kiirmeetod ja ühildusmeetod. Sorteerimise loendamismeetod ja positsioonimeetod. Magasin, järjekord, eelistusjärjekord. Järjestikpaigutus ja seotud paigutus. Paisksalvestus. Välisahelate ja lahtise adresseerimise meetodid. Puu ja kahendpuu. Binomiaalpuu. Kahendotsimise puu. AVL-puu. B-puu. Klasside kujutamine: Galler-Fischeri meetodi idee. Kahendkuhi. Binomiaalkuhi. Alamsõne otsimine: Knuth-Morris-Pratti algoritmi idee. Alamsõne otsimine: Rabin-Karpi algoritmi põhimõte. Kombinatoorika: hulga alamhulkade hulk. Seljakotiülesanne. Kombinatoorika: kombinatsioonid, permutatsioonid Pikim ühine osasõne. Omadused. Pikima ühise osasõna otsimine rekursiivselt. Pikima ühise osasõna otsimine dünaamilist kavandamist kasutades. Graafi tippude topoloogiline järjestus. Eeldusgraafi analüüsimine. Graafi sügavuti läbimine: teede otsimine. Graafi laiuti läbimine: Dijkstra algoritm. Graafi minimaalne toes: Primi algoritmi idee. Graafi minimaalne toes: Kruskali algoritmi idee. Planimeetria erivõtteid: pseudo-tõusunurk, pöörde suund. Planimeetria: Grahami seiremeetod.

More Related