Tentin tekstisisältö

TIE-20100 Tietorakenteet ja algorytmit - 07.09.2015

Tentin tekstisisältö

Teksti on luotu tekstintunnistuksella alkuperäisestä tenttitiedostosta, joten se voi sisältää virheellistä tai puutteellista tietoa. Esimerkiksi matemaattisia merkkejä ei voida esitää oikein. Tekstiä käytetään pääasiassa hakutulosten luomiseen.

Alkuperäinen tentti
JÄ AEL...
Y

TIE-20100 Tietorakenteet ja algoritmit Tentti 7.9.2015

TIE-20100 Tietorakenteet ja
algoritmit

Tentti 7.9.2015

Terhi Kilamo

Tentissä ei saa käyttää ylimääräistä kirjallista materiaalia, laskimia, tietokoneita tai muita lunttausvälineitä.
Muista vastata kaikkiin tehtäviin.

Kirjoita vastauksesi siistillä käsialalla lyhyesti -
Vääristä vastauksista ei yleisesti vähennetä pisteitä,
itsellään mahdollisuuden antaa miinuspisteitä täysin järjettömistä tai sisäisesti

sista vastauksista (siis selvistä arvauksista).

vastauksia ei arvostella viivoittimella.
mutta tentin tarkastaja pidättää
ristiriitai-

1. a) Selitä lyhyesti käsiteett asymptoottinen analyysi ja amortisoitu ajoaika sekä miten

ne liittyvät toisiinsa. (3p)
b) Kurssilla käytiin läpi algoritmien suunnitteluperiaatteita. Yksi näistä oli hajoita

ja hallitse. Kuvaile suunnitteluperiaate. Selitä lisäksi seuraavaa taulukkoa apunasi

käyttäen, miten joku hajoita ja hallitse -periaatteeseen perustuva algoritmi

järjestää taulukon.

 

11]5 [41]31] 42] 9 [10] 32]

 

 

 

 

 

 

(3P)

(6 p)

binäärihakupuu ja tasapainotettu binäärihakupuu.

2. a) Määrittele binääripuu,
anna esimerkki, miten se voidaan

Perustele, mitä etua tasapainoituksesta on ja
saavuttaan. (3 p)
b) Millainen tietorakenne on hajautustaulu? (3 Pp)

 
 

TIE-20100 Tietorakenteet ja algoritmit Tentti 7.9.2015

3. a) Kelju K. Kojootti on kasaamassa uutta maantiekiitäjäansaansa, kun Kelju
tipauttaa ansassa tarvitut pultit ja mutterit sikin sokin maahan. Miten epäonnen
riivaama kojoottiparka saa pultit ja mutterit löytämään parinsa mahdollisimman
vikkelästi. Kelju voi kokeilla, sopiiko pultti ja mutteri yhteen eli onko mutteri
suurempi kuin pultti, pienempi vaiko sopiva. Kahta pulttia ja kahta mutteria ei
voi vertailla keskenään. Mikä on ratkaisusi tehokkuus kertaluokkamerkinnöillä
esitettynä? (3 p)

Yksi tiedonpakkauksen menetelmä on ns. Huffmanin koodaus, jossa merkkeille
luodaan puumallilla bittiesitykset. Mihin suunnitteluperiaatteeseen oheinen
algoritmi näyttäisi perustuvan?

HUFFMAN ALGORITMI
Askel 1 Alusta jokaiselle merkistön merkille oma yhden solmun puunsa ja

merkitse kyseisen merkin esiintymistiheys merkin puun juureen. Se kertoo

S=

puun painon.

Askel 2 Toista seuraavaa kunnes yksi eheä puu on saatu rakennettua. Etsi kaksi
puuta, joiden painot ovat pienimmät. Tee valitsemistasi puista uuden puun
oikea ja vasen alipuu ja merkitse niiden painojen sunna uuden puun juureen
sen painoksi.

Rakenna Huffmanin koodaus alla olevalle datalle:

merkki = 80 D <
todennäköisyys | 0.4 0.1 0.2 0.15 0.15
ja koodaa merkkijono ABACABAD sen perusteella. (3 p)

(6 p)

4. Pitävätkö seuraavat väittämät paikkansa? (0.5 p/kohta)

irjestyksessä tietorakenteessa.

 

a) Syötteen alkiot kannattaa aina pi
b) Alkioiden järjestäminen on mahdollista tehdä O(n) ajassa.

c) Rengaspuskuri on tapa toteuttaa jono tehokkaasti.

d) Algoritmin muistinkäyttöä voi analysoida asymptoottisesti.

e) Jos algoritmin suoritusaika on kertaluokassa O(n), se on varmasti myös kertaluokassa

O(n?).

f) Jos algoritmin suoritusaika on kertaluokassa 0(n?), se on varmasti myös kertaluokassa
An).

g) Jos algoritmin suoritusaika on kertaluokassa O(nl/ogn), se on varmasti myös kertaluokassa
(log).

h) Jos algoritmin suoritusaika on kertaluokassa O(n), se on varmasti myös kertaluokassa
O(nlogn).

i) Jos algoritmin suoritusaika on kertaluokassa O(n?), se on varmasti myös kertaluokassa
O(n?).

j) Jos algoritmin suoritusaika on kertaluokassa O(n), se on varmasti myös kertaluokassa
An).

k) Jos algoritmin suoritusaika on kertaluokassa 9(logn), se on varmasti myös kertaluokassa
O(logn).

1) Jos algoritmin suoritusaika on kertaluokassa O(nlogn), se on varmasti myös kertaluokassa
O(nlogn). (6 p)

=
5
€
S
S
z

 

A ra 10
 

TIE-20100 Tietorakenteet ja algoritmit Tentti 7.9.2015

5. 4) Olet toteuttamassa uutta labyrintin suunnittelujärjestelmää, jonka avulla voidaan
testata haastelabyrinttien vaikeustasoa. Suunnittele tietorakenne, jolla voisit
esittää labyrintteja. Voit käyttää apunasi C++:n standardikirjastoa. Kuva olisi
kiva. (3 p)

b) Kuvaile hakualgoritmi, joka löytää lyhimmän reitin ulos labyrintista. Kuvaile
myös, miten tilanne muuttuu, kun labyrintin vaikeustasoa kasvatetaan lisäämällä
matkalle kulkua hidastavia haasteita kuten örkkejä ja taikoja. (3 p)

(6 p)

 


Käytämme evästeitä

Tämä sivusto käyttää evästeitä, mukaanlukien kolmansien puolten evästeitä, vain sivuston toiminnan kannalta välttämättömiin tarkoituksiin, kuten asetusten tallentamiseen käyttäjän laitteelle, käyttäjäistuntojen ylläpitoon ja palvelujen toiminnan mahdollistamiseen. Sivusto kerää käyttäjästä myös muuta tietoa, kuten käyttäjän IP-osoitteen ja selaimen tyypin. Tätä tietoa käytetään sivuston toiminnan ja tietoturvallisuuden varmistamiseen. Kerättyä tietoa voi päätyä myös kolmansien osapuolten käsiteltäväksi sivuston palvelujen tavanomaisen toiminnan seurauksena.

FI / EN