Hurtig sortering er en intern algoritme, som er baseret på divide and conquer-strategi. Heri:
- Arrayen af elementer er opdelt i dele gentagne gange, indtil det ikke er muligt at opdele det yderligere.
- Det er også kendt som sortering af partitionsudveksling .
- Den bruger et nøgleelement (pivot) til at partitionere elementerne.
- En venstre partition indeholder alle de elementer, der er mindre end pivoten, og en højre partition indeholder alle de elementer, der er større end nøgleelementet.
Flet sortering er en ekstern algoritme og baseret på opdel og hersk strategi. Heri:
- Elementerne opdeles i to sub-arrays (n/2) igen og igen, indtil der kun er ét element tilbage.
- Merge sort bruger ekstra lagerplads til sortering af hjælpearrayet.
- Merge sort bruger tre arrays, hvor to bruges til at gemme hver halvdel, og den tredje eksterne bruges til at gemme den endelige sorterede liste ved at flette andre to og hvert array sorteres derefter rekursivt.
- Til sidst bliver alle underarrays slået sammen for at gøre det til 'n' elementstørrelse af arrayet.

Hurtig sortering vs Merge Sort
- Opdeling af elementer i arrayet: I flettesorteringen er arrayet delt i kun 2 halvdele (dvs. n/2). hvorimod i tilfælde af hurtig sortering, opdeles arrayet i et hvilket som helst forhold. Der er ingen tvang til at opdele rækken af elementer i lige dele i hurtig sortering. Worst case kompleksitet: Worst case kompleksiteten af hurtig sortering er O(n^2), da der er behov for mange sammenligninger i den værste tilstand. hvorimod i merge sort, worst case og gennemsnitlige case har samme kompleksitet O(n log n). Brug med datasæt: Merge sort kan fungere godt på enhver type datasæt uanset størrelsen (enten stor eller lille). hvorimod den hurtige sortering ikke kan fungere godt med store datasæt. Ekstra lagerpladskrav: Merge sort er ikke på plads, fordi det kræver ekstra hukommelsesplads til at gemme hjælpearrays. hvorimod den hurtige sortering er på plads, da den ikke kræver yderligere opbevaring. Effektivitet: Flet sortering er mere effektivt og fungerer hurtigere end hurtig sortering i tilfælde af større matrixstørrelse eller datasæt. hvorimod hurtig sortering er mere effektiv og fungerer hurtigere end flette sortering i tilfælde af mindre matrixstørrelse eller datasæt. Sorteringsmetode: Hurtig sortering er intern sorteringsmetode, hvor dataene sorteres i hovedhukommelsen. hvorimod flettesorteringen er en ekstern sorteringsmetode, hvor de data, der skal sorteres, ikke kan rummes i hukommelsen og har brug for ekstra hukommelse til sortering. Stabilitet : Merge sort er stabil, da to elementer med samme værdi vises i samme rækkefølge i sorteret output, som de var i input usorteret matrix. hvorimod Quick sortering er ustabil i dette scenarie. Men det kan gøres stabilt ved hjælp af nogle ændringer i koden. Foretrukket til: Hurtig sortering foretrækkes for arrays. hvorimod Merge sortering foretrækkes for linkede lister. Referencelokalitet: Quicksort udviser god cache-lokalitet, og dette gør quicksort hurtigere end flettesortering (i mange tilfælde som i virtuelt hukommelsesmiljø).
| Grundlag for sammenligning | Hurtig sortering | Flet sortering |
|---|---|---|
| Opdelingen af elementer i arrayet | Opdelingen af et array af elementer er i et hvilket som helst forhold, ikke nødvendigvis opdelt i halvdelen. | I flettesorteringen er arrayet delt i kun 2 halvdele (dvs. n/2). |
| Worst case kompleksitet | O(n^2) | O(nlogn) |
| Fungerer godt på | Det fungerer godt på mindre array | Det fungerer fint på enhver størrelse af array |
| Udførelseshastighed | Det virker hurtigere end andre sorteringsalgoritmer for små datasæt som udvælgelsessortering osv | Det har en ensartet hastighed på enhver størrelse af data |
| Ekstra lagerpladskrav | Mindre (på stedet) | Mere (ikke på plads) |
| Effektivitet | Ineffektiv til større arrays | Mere effektivt |
| Sorteringsmetode | Indre | Ekstern |
| Stabilitet | Ikke stabil | Stabil |
| Foretrukket til | for Arrays | for sammenkædede lister |
| Referencested | godt | fattige |
| Større arbejde | Det største arbejde er at opdele arrayet i to sub-arrays, før de sorteres rekursivt. | Det største arbejde er at kombinere de to underarrays efter at have sorteret dem rekursivt. |
| Opdeling af array | Opdeling af et array i sub-arrays kan eller kan ikke være afbalanceret, da arrayet er opdelt omkring pivoten. | Opdeling af et array i underarray er altid afbalanceret, da det opdeler arrayet nøjagtigt i midten. |
| Metode | Hurtig sortering er en in-place sorteringsmetode. | Flet sortering er ikke på plads sorteringsmetode. |
| Sammenlægning | Quicksort behøver ikke eksplicit sammensmeltning af de sorterede sub-arrays; snarere omarrangerede underarrayerne korrekt under partitionering. | Merge sort udfører eksplicit fletning af sorterede underarrays. |
| Plads | Quicksort kræver ikke yderligere array-plads. | Til sammenlægning af sorterede sub-arrays har den brug for et midlertidigt array med størrelsen lig med antallet af input-elementer. |