Sorteringsalgoritme
![](https://upload.wikimedia.org/wikipedia/commons/1/1b/Sorting_heapsort_anim.gif)
I informatikken og matematik er en sorteringsalgoritme en algoritme, der permuterer (omordner) elementer i en bestemt rækkefølge. Sorteringsproblemet handler om at (omordne) elementerne i en given liste med n elementer <x1,x2, ... , xn> til listen <x1’,x2’, .. , xn’> således, at x1' ≤ x2’ ≤ ... ≤ xn’. Elementerne i listen er typisk tal fra mængden af de naturlige tal, men generelt kan elementerne i listen være alle mulige objekter så længe disse objekter kan sammenlignes med hinanden og opstilles i en kronologisk rækkefølge.
Sortering er det mest kendte problem inden for Algoritmik og er et fundamental operation inden for datalogi området, hvor det bruges i mange programmeringsprojekter. Der er igennem tiden udviklet mange sorteringsalgoritmer, hvor de både afviger i deres beregningskompleksitet og den fremgangsmåde de anvender til løsningen af problemet.
Sorteringsalgoritmerne kan opdeles i forskellige grupper. De mest kendte algoritmer er dem som hører under gruppen sammenlignings sortering (eller sammenligningsbaseret sortering). ”Nedre grænse for sammenligningssortering” er en overskrift for et bevis, der udsiger, at enhver sammenligningssorteringsalgoritme kræver mindst n log n (
Gruppen af sammenligningssortering består af følgende algoritmer:
- Indsættelsessortering
- Quicksortering
- Boblesortering
- Flettesortering
- Udtagelsessortering
- Hobsortering - Heap sort
Den anden gruppe består af de sorteringsalgoritmer, der har en linære beregningskompleksitet. Disse algoritmer sorter en liste uden at sammenligne elementerne med hinanden. Denne gruppe består af følgende algoritmer:
Inden for grafteori findes der også en bestemst sorteringsalgoritme, der sorter knuderne i grafen i en bestemt rækkefølge. Algoritmen kaldes for topologisksortering.