Tenttiin tai välikokeisiin valmistautumisessa kannattaa kerrata seuraavat asiat:
Tenttitehtävät sisältävät yleensä
seuraavanlaisia asioita. Otsakkeiden alla on esimerkkejä
kyseisestä tehtävätyypistä. Tehtäviin ei
tyypillisesti ole yhtä oikeaa ratkaisua, vaan samaa aihetta voi
lähestyä hyvin monella eri tavalla. Oleellista ei siis ole
kaikkien nippelitietojen ulkoa muistaminen vaan laajempi
näkemys aiheeseen siten, että pystyy palauttamaan riittävästi
yksityiskohtia mieleensä ja tenttivastaukseen tehtävän edellyttämässä
laajuudessa (vrt. esim. tehtävä B, jossa kriteerit voi/pitää keksiä
itse: ei ole olemassa neljää tärkeintä kriteeriä kaikkiin mahdollisiin
sovelluksiin, vaan tehtävässä kriteerit tulee perustellä erään
sovelluksen näkökulmasta, jonka valinta on jätetty tenttijälle).
Määrittele lyhyesti seuraavat käsitteeta) Pakka (deque)
b) Prioriteettijono
c) Hajautusfunktio
Hakurakenteeta) Mainitse neljä keskeistä kriteeriä, joita joudut miettimään valitessasi hakurakennetta johonkin sovellukseen. Oletetaan, että rakenteessa tarvitaan vain yhdenlaisia hakuavaimia.
b) Vertaile näiden kriteerien perusteella hakumenetelmänä binäärihakupuuta, AVL-puuta ja kaksoishajautusta.
JärjestäminenJoudut valitsemaan algoritmin tehtävään, jossa pitää järjestää joukko keskusmuistissa olevia alkioita suuruusjärjestykseen. Mitä asioita otat huomioon tehdessäsi valintaa ja mitä algoritmeja suosittelet eri tilanteisiin? Perustele mielipiteesi lyhyesti ja tiiviisti (pituus korkeintaan 1 sivu).
Selitä sanallisesti algoritmi, jonka avulla voidaan muodostaa verkon minimaalinen virityspuu. Anna esimerkki algoritmin toiminnasta (tehtävässä mahdollisesti annetulla verkolla). Mikä on algoritmin tehokkuus, jos verkossa on V solmua ja E kaarta?
Kirjoita seuraavat algoritmit. Voit esittää ne Pascalilla, C-kielellä, Javalla tai käyttäen pseudokieltä. Esitä algoritmin perusajatus myös sanallisesti.a) Algoritmi, joka laskee annetun binääripuun korkeuden. Mikä on algoritmisi tehokkuus O()-notaatiossa, kun puussa on N alkiota?
b) Algoritmi, joka saa argumenttina kaksi binääripuuta ja joka palauttaa tiedon siitä, ovatko puut identtisiä. Mikä on algoritmisi tehokkuus O()-notaatiossa, kun molemmissa puissa on N alkiota?
c) Algoritmi, joka saa argumenttina kaksi alkioiden arvon mukaan nousevassa järjestyksessä olevaa taulukkoa ja joka tulostaa niissä olevat yhteiset alkiot. Mikä on algoritmisi tehokkuus O()-notaatiossa, kun taulukoissa on M ja N alkiota.
a) Määrittele formaalisti käsitteet O(N) ja Omega(N).b) Ratkaise rekursioyhtälö T(N) = 2 T(N / 2) + N, kun N on kahden potenssi ja T(1) = 0. Esitä riittävästi välivaiheita ja esitä lopputulos O()-notaatiossa.
Kekoa) Rakenna avaimista
P R I O R I T E E T T I J O N Okeko (heap) käyttäen build-heap -menetelmää. Kekoehtona on se, että isä >= lapset. Näytä välivaiheita.b) Poista sen jälkeen keosta avain ja näytä keon sisältö. Poista vielä toinen avain ja näytä keon sisältö.
c) Esitä lopullinen keko taulukkomuodossa.
Muista ilmoittautua välikokeisiin/tenttiin! Ensimmäinen välikoe on pe 11.3. Ilmoittautuminen tehdään TOPIn kautta. Ilman ilmoittautumista paperi voidaan jättää korjaamatta.
Viimeinen tenttimahdollisuus
on alkukevään 2006 1. tentti (arviolta helmi- tai
maaliskuussa) joulukuun tenttikaudella.