Kordamisküsimused aines "Algoritmid
ja andmestruktuurid"
- Algoritmi omadused. Algoritmide asümptootiline
analüüs: relatsioonid "suur-O", "väike-o", teeta,
"suur-oomega" ja "väike-oomega"; nende definitsioonid ning
põhiomadused.
- Kahendotsimine (binary search).
- Paisksalvestus, paisktabel (hash table).
- Järjestamine: pistemeetod (insertion sort) ja
kiirmeetod (quicksort).
- Jaga ja valitse: ühildusmeetod (merge sort).
- Lineaarse keerukusega järjestamismeetodid: kimbumeetod (bucket
sort), positsioonimeetod (radix sort) ja
loendamismeetod (counting sort).
- Abstraktsed andmetüübid (ADT), staatilised ja
dünaamilised andmestruktuurid. Ahel (list), ahelate liigid.
- Magasin (stack). Avaldise pööratud poola kuju (RPN).
- Järjekord (queue), järjekordade eriliigid.
- Puu, puu kujutamine. Suluesitused.
- Puu läbimise viisid (põhialgoritmid).
- Graaf, graafiga seotud mõisted: orienteeritud ja
orienteerimata graaf, multigraaf, lihtgraaf, sidusus, alamgraaf.
- Graafi kujutamine, graafiga seotud maatriksid, tehted graafidega.
- Graafi läbimise algoritmid: laiuti (breadth first) ja
sügavuti (depth first).
- Algoritmid graafidel: sidususkomponentide leidmine.
- Algoritmid graafidel: tippude topoloogiline järjestamine.
- Algoritmid graafidel: kauguste arvutamine kõigi
tipupaaride vahel.
- Algoritmid graafidel: lühimate teede leidmine antud
tipust.
- Algoritmid graafidel: toesepuu (spanning tree).
- Rekursioon, näide: Hanoi tornid. Rekursiooni eemaldamine,
"sabarekursioon" (tail recursion).
- Ammendav otsing. Lippude paigutamise ülesanne (8 queens).
- Kahendpuu ja selle läbimine, kahendotsimise puu (binary
search tree).
- AVL-puu, binomiaalpuu ja värvitud kahendpuu (red-black
tree).
- Kahendkuhi (binary heap) ja sorteerimine
kuhjameetodil (heap sort).
- m-rajaline otsimispuu, B-puu.
- Sõnealgoritmid: Knuth-Morris-Pratt'i algoritm,
Rabin-Karp'i algoritm.
- Sõnealgoritmid: Boyer-Moore'i algoritm.
- Kodeerimine, kodeerimisskeemid, prefikskood. Shannon-Fano
pakkimismeetod.
- Ahned (greedy) algoritmid. Pakkimine Huffmani puu abil.
- Dünaamiline kavandamine (dynamic programming). Pikima
ühise osasõne leidmine.
- Nõrgima eeltingimuse kasutamine algorimi osalise
korrektsuse tõestamiseks.
Jaanus Pöial