FAGPORTALEN

Tidskompleksitet (Big-O)

Programmering B · HTX · B-niveau · Datastrukturer og algoritmer

💻 Big-O notation

Big-O beskriver algoritmers tidskompleksitet — hvordan køretid vokser med input-størrelse n.

Klasser fra hurtigst til langsomst:

```

O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2^n) < O(n!)

```

Eksempler:

| Notation | Navn | Eksempel |

|----------|------|----------|

| O(1) | Konstant | Dictionary-lookup |

| O(log n) | Logaritmisk | Binær søgning |

| O(n) | Lineær | Lineær søgning |

| O(n log n) | Linearitmisk | Quicksort, Merge sort |

| O(n²) | Kvadratisk | Boble-sortering |

| O(2^n) | Eksponentiel | Naiv Fibonacci |

Analyse — tæl dominerende operation:

```python

def find_par(liste): # O(n²)

for i in range(len(liste)): # n iterationer

for j in range(i+1, len(liste)): # n iterationer

if liste[i] + liste[j] == 10:

print(liste[i], liste[j])

```

Rumkompleksitet (Space complexity): hukommelse brugt af algoritme.

Praktisk tommelfingerregel:

Amortiseret analyse: list.append() er O(1) amortiseret selvom den lejlighedsvis resizer (O(n)).

Læringsmål

Sådan kan du arbejde med emnet

Træningsforslag

Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.

Prøv Fagportalen gratis

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.