Komplett pensumoversikt for algoritmer og datastrukturer ved NTNU — med forklaringer, sentrale begreper, eksamenstips og vanlige fallgruver. Eksamensoptimalisert basert på tidligere eksamener.
TDT4120 Algoritmer og datastrukturer avsluttes med én skriftlig skoleeksamen: 4 timer i Inspera, hjelpemiddelkode E: ingen hjelpemidler, heller ikke kalkulator. Neste eksamen er 9. desember 2026 kl. 15.00. Guiden er bygd på de 22 eksamenssettene fra 2015 til 2025 og NTNUs løsningsforslag til dem. Alle tall er målt deloppgave for deloppgave.
Siden desember 2022 har settet bestått av 20 korte oppgaver à 5 % (august 2025: 12 like store). De fleste er korte spørsmål: oppgi en kjøretid, løs en rekurrens, utfør ett steg av en algoritme, si hva som mangler i en formel eller linje med pseudokode, eller vurder en påstand. De siste 2–5 er som regel åpne: «Konstruer og beskriv en algoritme» for et problem du ikke har sett før. I desember 2025 endte 15 av 20 oppgaver med «Forklar kort». I de 8 nyeste settene (2022–2025) fordeler poengene seg slik: forklare 34,4 %, designe en algoritme 15,4 %, regne (kjøretid, rekurrenser) 15,4 %, korte fakta 15,0 %, kjøre en algoritme for hånd 11,2 %, resten er modellering, utfylling og reduksjoner.
| Tema | Sett (av 22) | Andel av poengene |
|---|---|---|
| Grafalgoritmer | 22 | 25,8 % |
| Sorteringsalgoritmer | 21 | 12,0 % |
| Datastrukturer | 20 | 11,5 % |
| Maksimal flyt (med matching) | 22 | 11,3 % (14,0 % i de 8 nyeste) |
| Splitt og hersk og rekurrenser | 20 | 10,5 % |
| NP-fullstendighet | 21 | 9,5 % |
| Kompleksitetsanalyse | 18 | 8,4 % |
| Dynamisk programmering | 20 | 7,9 % |
| Grådige algoritmer | 10 | 3,1 % |
Åtte av ni temaer er med i minst 18 av 22 sett, så ingenting kan hoppes over. «Løs rekurrensen» står i 19 av 22 sett. Stabil matching kom inn i 2022 og har vært med i 6 av de 8 nyeste settene. Balanserte søketrær (AVL, rød-svart), tilnærmingsalgoritmer og matroider har 0 treff i de 22 settene og er ikke med i guiden.
Hver seksjon starter med hvordan temaet er prøvd, og har gjennomregnede eksempler i samme form som eksamensoppgavene, med egne tall. Svarene er kontrollert med Python.
Kompleksitetsanalyse har egne deloppgaver i 8 av de 8 nyeste TDT4120-settene (10,4 % av poengene). Du må kunne definisjonene av O, Ω og Θ, regne med dem i uttrykk, telle løkker og skille beste, verste, gjennomsnittlig, forventet og amortisert tid.
Kompleksitetsanalyse er språket resten av emnet bruker: nesten hver oppgave ber om en kjøretid, og mange ber deg «oppgi svaret i -notasjon». Her handler det om selve notasjonen, om å telle løkker og om de ulike måtene å snakke om kjøretid på. Rekurrenser står under splitt og hersk.
Slik testes dette på eksamen. Kompleksitetsanalyse har minst én egen deloppgave i 18 av 22 sett (2015–2025) og i 8 av de 8 nyeste (2022–2025), og gir 10,4 % av poengene i de nyeste 8. Å forenkle et uttrykk med , og , eller summen , står i 8 av 22 sett og 4 av de 8 nyeste. Løkketelling står i 7 av 22 og 4 av de 8 nyeste. Beste, verste og gjennomsnittlig tilfelle spørres det om i 11 av 22 sett og 5 av de 8 nyeste, ofte knyttet til en bestemt algoritme. Amortisert analyse står i 3 av 22 (2016 des., 2018 des., 2024 aug.).
Har du vist både og , har du , og er da det mest informative svaret. Notasjonen er ikke knyttet til et tilfelle: betyr ikke «verste tilfelle». Beste tilfelle for Insertion-Sort er , og verste er . Vokserekkefølgen du må kunne:
(konstant)
Grunntallet i logaritmen spiller ingen rolle, men grunntallet i en eksponent gjør det: er ikke .
Et ledd som i et uttrykk står for en ukjent funksjon med den grensen. Summen får den største nedre grensen og den største øvre grensen. Et -ledd har ingen øvre grense, så da har heller ikke summen det. Et -ledd kan være 0 og bidrar ikke til den nedre grensen.
| Uttrykk | Resultat | Hvorfor |
|---|---|---|
| -leddet gir nedre grense, -leddet fjerner øvre | ||
| og | ingen , grensene er ulike | |
| stor teller, liten nevner | ||
| bare øvre grense overlever |
Nøstede løkker ganges, løkker etter hverandre legges sammen. Avhenger den indre løkka av den ytre, summerer du: . En variabel som dobles eller halveres, gir runder. En geometrisk sum domineres av siste ledd: . Vi regner i RAM-modellen, der hver enkel operasjon (tilordning, sammenligning, aritmetikk på tall av størrelse bit) tar konstant tid.
Hva er verdien av når prosedyren er ferdig? Svar med -notasjon, uttrykt ved , og begrunn kort.
Tell(n)
1 m = 0
2 for i = 1 to n // n runder
3 j = 1
4 while j ≤ i
5 m = m + 1
6 j = 2 · j
7 return m

Svar: .
Du vet at og , og at . Uttrykk så presist som mulig med asymptotisk notasjon.
Svar: og . En tett -grense kan ikke gis.
Beste og verste tilfelle er kjøretiden på den gunstigste og den verste input av størrelse . Gjennomsnitt brukes om tre ulike ting:
En nedre grense kan også komme fra antall mulige svar: skal du skille mellom muligheter med ja/nei-spørsmål, trengs minst spørsmål i verste fall.
En dynamisk tabell starter med plass til 1 element og dobles når den er full. Hva koster 9 kall til Table-Insert, målt i antall elementer som skrives? Hva er den amortiserte kostnaden per innsetting? Forklar kort.

Svar: 24 skrivinger. Amortisert kostnad per Table-Insert er , selv om én innsetting i verste fall koster .
Nøkkelformler
Vanlige feil
Eksamenstips
Laster...