1
Napiši funkcijo Trikotnik(n)
, ki izpiše trikotnik iz zvezdic. Na primer, Trikotnik(4)
naj izpiše:
* ** *** ****
Kakšna je časovna zahtevnost te funkcije?
2
Dana je funkcija Prestej(s, p)
, ki vrne število pojavitev niza p
kot podniza v nizu s
.
(a) Preizkusi to funkcijo na nekaj primerih nizov s
in p
ter se prepričaj, da res deluje.
(b) Kako se funkcija obnaša v primerih, ko se pojavitve podniza prekrivajo? Na primer: Prestej("banana", "ana")
.
(c) Kakšna je (v najslabšem primeru) časovna zahtevnost te funkcije v odvisnosti od n (dolžine niza s
) in m (dolžine niza p
)?
(d) Opiši, kakšna morata biti pri danih n in m konkretna niza s
in p
, da funkcija porabi največ časa, kolikor je mogoče pri teh n in m.
(e) Recimo, da bi iz zgornje funkcije pobrisali vrstico s stavkom break
. Kako bi to vplivalo na rezultate, ki jih funkcija vrača? Kako bi vplivalo na njeno časovno zahtevnost?