Sortering av elementer i en liste er en verdslig oppgave og ofte tidkrevende. Begrepet sortering refererer generelt til å ordne elementene i en liste i enten stigende eller synkende rekkefølge basert på et forhåndsdefinert ordreforhold. Sortering er ofte ment for søk, noe som er enda en grunnleggende aktivitet i databehandling. Tenk deg hvor vanskelig det ville vært å søke et ord på en ordbok hvis ordene i det ikke hadde blitt organisert eller sortert. Dette er grunnen til at oppføringer i en ordbok holdes i en standard alfabetisk rekkefølge. Mange oppgaver og beregninger blir enkle bare ved å sortere. Og dette er hvor sorteringsalgoritmer kommer til bildet.
En sorteringsalgoritme er bare en metode for å organisere elementer i en liste i en bestemt rekkefølge, for eksempel laveste til høyeste verdi, høyeste til laveste verdi, økende rekkefølge, synkende rekkefølge, alfabetisk osv. De mest brukte ordrene er numerisk og leksikografisk rekkefølge. Algoritmer bruker ofte sortering som en nøkkel subrutine. Det finnes et bredt utvalg av sorteringsalgoritmer som brukes overalt, og hver bruker et rikt sett med teknikker. En slik populær, likevel like kraftig algoritme er Divide and Conquer-algoritmen, som er en algoritme basert på multi-forgrenet rekursjon. Quick Sorter og Merge Sort er de to brukte algoritmer basert på Divide and Conquer-algoritmen.
Quick Sort er en svært effektiv, men effektiv sorteringsalgoritme basert på divisjonen og erobre tilnærmingen som er ganske lik den dynamiske tilnærmingen der et problem er delt inn i to eller flere delproblemer og deretter løses rekursivt. Hvis størrelsen på delproblemene er liten nok, blir de løst på en enkel måte uten problemer. Kaller også partisjonskort sorterer den raske sorteringsalgoritmen listen som skal sorteres i tre hoveddeler: 1) Pivotelement (sentrale elementer), 2) elementer mindre enn svinget, og 3) elementer større enn svinget. Pivoten selv flyttes mellom de to gruppene til sin endelige posisjon og QUICK SORT blir deretter brukt rekursivt.
Merge Sort er enda en generell sorteringsalgoritme basert på divisjonen og erobre teknikken. Det er en av de mest respekterte og populære sorteringsalgoritmene designet for å bli brukt effektivt til å sortere data som er lagret eksternt i en fil. Det gir O (n log n) oppførsel i verste fall ved bruk av O (n) ekstra lagring. Det deler en samling 'A' i to mindre samlinger, som hver er sortert. I den siste fasen blir disse to sorterte samlingene fusjonert tilbake til en enkelt samling av størrelse n. Dette blir den sorterte listen. Algoritmen er ganske rask og er også en stabil sortering, og er ideelt foretrukket for Lister.
- Både Quick Sorter og Merge Sort er divide-and-conquer-baserte sorteringsalgoritmer med samme grunnleggende prinsipp - å dele et problem i to eller flere delproblemer og deretter løse dem rekursivt. Imidlertid er de forskjellige i sammenslåingsprosedyrene og når det gjelder ytelse. Hurtig sortering er vanligvis bedre og raskere enn andre sorteringsalgoritmer, inkludert Merge Sort når det gjelder små datasett, mens Merge Sort opprettholder konsistens uavhengig av typen datasett. Hurtig sortering er ideelt foretrukket for arrayer, mens Merge Sort er ideelt foretrukket for Linked Lists.
- Sorteringen i Quick Sort-algoritmen gjøres rekursivt, og hvert rekursivt anrop krever stablingssted. Det krever ikke ekstra plass for sammenslåing, bortsett fra en enkelt minneplass for sammenslåing. Som det er en in situ-algoritme, er det ikke nødvendig med ekstra plass for å utføre sortering. Faktisk bruker den samme array mens du deler og slår sammen gruppen. I kombinasjonssortering er det på den annen side flere måter å representere data på i en fil eller som en array, så det trenger slike arbeidsområder som underfiler eller arrayer av samme størrelse som krever ekstra plass.
- Den verste saken for Hurtig sortering oppstår når partisjoneringen er ubalansert som avhenger av hvilke elementer som brukes til partisjonering, i så fall løper algoritmen asymptotisk så sakte som innsettings sortering. Det verste fallet med Quick Sort er O (n2) og er igjen som en øvelse. Det kan imidlertid unngås ved å velge riktig sving. Det verste fallet med Merge Sort opptrer derimot når det må gjøre maksimalt antall sammenligninger. Tatt i betraktning den lineære ytelsen for sammenslåing, er det verste fallet av Merge Sort O (n log2 n).
- Selv om både algoritmer for rask sortering og sammenslåing er basert på divisjonen og erobrer tilnærmingen for sortering, varierer de med metodene som brukes til å utføre splitt- og sammenslåingsprosedyrene. For hurtig sortering er hoveddelen av arbeidet å oppdele listen i to underlister som finner sted før dellistene er sortert. For Merge Sort er hoveddelen av arbeidet å slå sammen to underlister som finner sted etter at dellister er sortert. Merge Sort krever et midlertidig array for sammenslåing av to underarrayer, mens det ikke kreves ekstra arrayplass for Quick Sort, noe som gjør det mer plassbesparende enn Marge Sort.
Både Quick Sorter og Merge Sort algoritmer er basert på divisjonen og erobre tilnærmingen for sortering. Imidlertid varierer de med metodene som brukes til å utføre splitt- og sammenslåingsprosedyrene. De arbeider i utgangspunktet med samme prinsipp - å dele et problem i to eller flere delproblemer og deretter løse dem rekursivt. Merge Sort er mer effektiv enn Quick Sort i verste fall, men de to er like effektive i gjennomsnittssaken. Men hurtig sortering er mer plassbesparende enn flette sortering. Så hurtig sortering er utvilsomt raskere og bedre enn flette sortering, men den blir ineffektiv i få situasjoner som når det gjelder sammenligninger.