Valg af sorteringsalgoritme afhænger af nogle få egenskaber: tidsompleksitet, stabilitet, hukommelsesforbrug på stedet og dataenes natur. Ingen enkelt algoritme vinder alle steder.
Valg af sorteringsalgoritme afhænger af nogle få egenskaber: tidsompleksitet, stabilitet, hukommelsesforbrug på stedet og dataenes natur. Ingen enkelt algoritme vinder alle steder.
| Algoritme | Gennemsnit | Værste tilfælde | Stabil | På stedet |
|---|---|---|---|---|
| Insertion | O(n²) | O(n²) | Ja | Ja |
| Merge | O(n log n) | O(n log n) | Ja | Nej |
| Quick | O(n log n) | O(n²) | Nej | Ja |
| Heap | O(n log n) | O(n log n) | Nej | Ja |
# Most languages ship a tuned hybrid; prefer it in production
sorted(data, key=lambda x: x.priority) # stable Timsort in Python
Implementer ikke din egen sorteringsalgoritme, medmindre du har en specifik grund — biblioteksalgoritmer (Timsort, introsort) er velafprøvede hybrider.
At matche sorteringsalgoritmen med data og krav undgår både spildt tid og subtile fejl (som at miste stabilitet).
At forstå afvejningerne forklarer, hvorfor standardbiblioteker valgte hybrider som Timsort og introsort.
Dette komparative skøn — ikke memorering af én algoritme — er det, som rigtig teknik og interviews værdsætter.