Kurssin sisällöt
- Perusteet-osassa tutustutaan algoritmien analysointiin ja suunnitteluun sekä rekursioyhtälöiden ratkaisemiseen.
- Lajittelualgoritmit-osiossa tarkastellaan keskeisimpiä järjestämistekniikoita kuten limityslajittelua, kekolajittelua sekä prioriteettijonon toteuttamista keon avulla, pikalajittelua ja lajittelua lineaarisessa ajassa. Lisäksi tarkastellaan ns. järjestysstatistiikkaa eli i:nneksi pienimmän alkion etsimistä lajittelemattomasta syötteestä.
- Tietorakenteet-jaksossa perehdytään perustietorakenteista vektoreihin sekä pinon, jonon ja linkitettyjen listojen ominaisuuksiin ja toteutustapoihin. Lopuksi tarkastellaan tärkeimpiä hakurakenteita, joihin kuuluvat suorasaanti- ja hajautustaulut sekä binääriset hakupuut.
Opiskelija tutustuu algoritmiikan kannalta tärkeimpien matemaattisten funktioiden kasvunopeuden vertailuun ja sittemmin algoritmien suoritustehokkuuden analysointiin aikavaativuuden osalta. Hän perehtyy tärkeimpien yleiskäyttöisten järjestämis- ja valinta-algoritmien toimintaan sekä mahdollisuuksiin niiden tehostamiseksi erikoistapauksissa. Lisäksi opiskelija oppii puolestaan keskeisimpien tallennus- ja hakurakenteiden ominaisuudet sekä niiden mahdollisia toteutustapoja eri perustietorakenteita käyttämällä.
Opetus
Luento-opetus kampuksella.
Lisätietoja Turun yliopiston opinto-oppaassa.
Tämän kurssin suorituksesta on mahdollista saada digitaalinen suoritusmerkki.