FAGPORTALEN

Sorteringsalgoritmer — quicksort, merge sort, heapsort

It A · STX · A-niveau · Datastrukturer og algoritmer

💻 Sorteringsalgoritmer — quicksort, merge sort, heapsort

Sorteringsalgoritmer = grundlæggende computerscience. Klassiske comparison-baserede (kan ikke gå hurtigere end O(n log n) i worst case):

1.

Quicksort — divide & conquer. Vælg pivot, partitionér så alle < pivot er til venstre, > til højre. Rekursiv på sub-arrays.

Tidskompleksitet: gennemsnit O(n log n), worst case O(n²) (allerede sorteret data + dårlig pivot).

Plads: O(log n) for stack. In-place (modificerer original array).

Dominant i praksis — Python's Timsort, C's qsort, JavaScript's V8.

2.

Merge sort (John von Neumann 1945) — divide & conquer. Splitt array i 2 halvdele, sortér rekursivt, MERGE de sorterede.

Tidskompleksitet: ALTID O(n log n) — stable.

Plads: O(n) — IKKE in-place. Stabil (bevarer relativ orden af lige-keys). Bruges i ekstern sortering (data > RAM).

3.

Heapsort — bygger max-heap, ekstrahér roden iterativt.

Tidskompleksitet: O(n log n).

Plads: O(1) in-place. Ikke stabil. Mindre cache-friendly end quicksort.

Simple algoritmer (O(n²) — ikke til store data): (4)

Bubble sort — sammenlign nabopars, swap. Pædagogisk, ineffektiv. (5)

Selection sort — find min, swap. (6)

Insertion sort — én ad gangen, indsæt på rette sted. EFFEKTIV for SMÅ array (n < 50) eller næsten-sorteret. Bruges som "base case" i hybrid-algoritmer (Timsort, Introsort).

Specielle algoritmer (linear time, ikke comparison-baseret): (7)

Counting sort — kun for heltal i kendt range. O(n+k). (8)

Radix sort — sor

Læringsmål

Sådan kan du arbejde med emnet

Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.

Ø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.