1 / 14

Algoritmid ja andmestruktuurid

Algoritmid ja andmestruktuurid. Henn Sarv IT Kolledž 2003 kevad. Kursuse sissejuhatus ja tutvustus. Töökorraldus Loeng ja harjutus, esimene nädal teeme 2 loengut Harjutused töö käigus, nii analüüsimist kui koostamist C või mis iganes ja C#

afi
Télécharger la présentation

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 Henn Sarv IT Kolledž 2003 kevad

  2. Kursuse sissejuhatus ja tutvustus • Töökorraldus • Loeng ja harjutus, esimene nädal teeme 2 loengut • Harjutused töö käigus, nii analüüsimist kui koostamist • C või mis iganes ja C# • 1 kontrolltöö ja kirjalik eksam – teeme fifty-fifty

  3. Alusmaterjalid • Ainekaardil on raamatuviited • www.google.com • http://www.itcollege.ee/~dmitri/ID209/index.htm • http://cs.ttu.ee/~marko/wav3020/

  4. Kursuse eesmärk • Saada ülevaade algoritmidest ja nende keerukusega seotud probleemidest • Saada oskus algoritme analüüsida • Kursuse mitteeesmärk • Mitte teoreetiline jutt – seda leiab internetist, pigem arutada ja selgitada läbi • Mitte õpetada teid programmeerima. Pigem õpetada nägema seinu ja aknaid

  5. Ligikaudne kava • Algoritm ja selle keerukus • Lihtsad struktuurid, pinud ja jadad • Keerukad struktuurid, listid, puud • Otsimisalgoritmid • Lisamisalgoritmid • Sortimisalgoritmid • … • VÕIB MUUTUDA!

  6. Algoritm ja selle keerukus • Mis on algoritm • Probleem • Lahenduskäik • Programm • Lähteinfo, tulemusinfo • Samale probleemile mitu lahendust, milline on parem • Teeme mõne näite

  7. Algoritmi kriteeriumid • Lõpetav: algoritm peatub kunagi • Korrektsus: algoritm annab õige vastuse • Deterministlik: samale sisendile alati sama vastus • Lõplik: seda saab kirjeldada lõpliku arvu sammudega • Määratletud: igal sammul on selgelt defineeritud tähendus • Keerukus: kui palju aega ja mälu algoritm vajab

  8. Keerukus • Parim, halvim, keskmine, vältimatu • BCRT • WCRT • ACRT • Vältimatu aeg • Ajamaht ja mälumaht

  9. Algoritmi ajaline kestus, algoritmi ajaline keerukus • Kuidas seda mõõta • Kuidas seda analüüsida • Samm, selle kestus, selle korduvus

  10. Algoritmi analüüsimine • Keerukus • Sõltub lähteandmetest • Nende mahust (massiivi suurus) • Nende suurusest (stringi pikkus) • Nende väärtusest (faktoriaal, algtegurid)

  11. Miks seda kõike vaja on • Jälle paar näidet

  12. Keerukusklassid, kuidas need saadakse, põhimõisted • Teeta, o ja omega • Algoritmid, mille lahendusaeg kasvab sarnaselt, on sarnase keerukusega • Oluline on keskenduda kõige mahukamale osale

  13. Mõned tähistused • time(n) = Θ(n) -- aeg kasvab andmetega lineaarselt • O – suurim kasv, • Ώ – vähim kasv, • Θ - mõlemad

  14. Keerukusklasside jada • Θ(1) – konstantse keerukusega - näide • Θ(n) – lineaarse keerukusega – näide • Θ(log n) – logaritmilise keerukusega – näide • Θ(nk) – polünomiaalse keerukusega • Θ(kn) – astmelise (eksponentsiaalse) keerukusega • Θ(n!) - faktoriaalse keerukusega • Θ(1) < Θ(log n) < Θ(n) < Θ(nk) < Θ(kn) < Θ(n!)

More Related