Att sortera objekt i en lista är en vardaglig uppgift och ofta tidskrävande. Termen sortering avser allmänt att arrangera objekten i en lista i antingen stigande eller nedåtgående ordning baserat på ett förutbestämt orderförhållande. Sortering är ofta avsedd för sökning, vilket är hans enda grundläggande verksamhet inom databehandling. Föreställ dig hur svårt det hade varit att söka ett ord i en ordbok om orden i det inte hade organiserats eller sorterats. Detta är anledningen till att poster i en ordbok hålls i en standard alfabetisk ordning. Många uppgifter och beräkningar blir enkla genom att helt enkelt sortera. Och här kommer sorteringsalgoritmer till bilden.
En sorteringsalgoritm är ingenting annat än en metod för att organisera element i en lista i en specifik ordning, till exempel lägsta till högsta värde, högsta till lägsta värde, ökande ordning, minskande ordning, alfabetisk etc. De vanligaste beställningarna är numerisk och lexikografisk ordning. Algoritmer använder ofta sortering som en viktig delrutin. Det finns en mängd olika sorteringsalgoritmer som används överallt, var och en använder en rik uppsättning tekniker. En sådan populär men likvärdig algoritm är Divide and Conquer-algoritmen som är en algoritm baserad på flera grenade rekursioner. Snabb sortering och sammanslagning Sortera är de två vanliga algoritmerna baserade på Divide and Conquer-algoritmen.
Quick Sort är en mycket effektiv men ändå effektiv sorteringsalgoritm baserad på dividerings- och erövringsmetoden som är ganska lik den dynamiska inställningen där ett problem är indelat i två eller flera delproblem och sedan löses rekursivt. Om storleken på delproblemen är liten nog, löses de helt enkelt på ett rakt sätt utan några problem. Också kallad partitionsbyte, delar den snabba sorteringsalgoritmen listan som ska sorteras i tre huvuddelar: 1) Pivotelement (centrala element), 2) Element mindre än vridpunkten, och 3) Element större än vridpunkten. Pivoten i sig flyttas mellan de två grupperna till sin slutliga position och QUICK SORT appliceras därefter rekursivt.
Merge Sort är ännu en generell sorteringsalgoritm baserad på delningen och erövra tekniken. Det är en av de mest respekterade och populära sorteringsalgoritmerna som är konstruerade för att användas effektivt för att sortera data som lagras externt i en fil. Det erbjuder O (n log n) beteende i värsta fall när du använder O (n) extra lagring. Det delar upp en samling 'A' i två mindre samlingar, var och en sorteras sedan. I slutfasen slås dessa två sorterade samlingar tillbaka till en enda samling av storlek n. Detta blir den sorterade listan. Algoritmen är ganska snabb och är också en stabil sortering, och är idealiskt föredragen för länkade listor.
- Både Quick Sorter och Merge Sort är divisions- och erövringsbaserade sorteringsalgoritmer med samma grundläggande princip - att dela ett problem i två eller flera delproblem och sedan lösa dem rekursivt. Men de skiljer sig åt i sammanslagningsförfarandena och i form av prestanda. Snabb sortering är i allmänhet bättre och snabbare än andra sorteringsalgoritmer, inklusive sammanslagningssortering när det gäller små dataset, medan sammanslagningsrad upprätthåller konsistens oavsett vilken typ av dataset. Snabb sortering är idealiskt föredragen för arrayer, medan sammanslagning är ideellt föredragen för länkade listor.
- Sorteringen i Quick Sort-algoritmen görs rekursivt, och varje rekursivt samtal kräver stakplats. Det kräver inte extra utrymme för sammanslagning, förutom ett enda minnesutrymme för sammanslagning. Eftersom det är en in-place-sorteringsalgoritm krävs inget extra utrymme för att utföra sortering. Faktum är att det använder samma array medan du delar och sammanfogar matrisen. I Merge Sort finns å andra sidan flera sätt att representera data i en fil eller som en array, så det behöver sådana arbetsområden som underfiler eller arrays av samma storlek som kräver extra utrymme.
- Det värsta fallet för Quick Sort uppstår när partitioneringen är obalanserad, vilket beror på vilka element som används för partitionering, i vilket fall algoritmen kör asymptotiskt så långsamt som inmatningssort. Det svåraste resultatet av Quick Sort är O (n2) och lämnas som en övning. Det kan dock undvikas genom att välja rätt sväng. Det värsta fallet med sammanslagning sker däremot när det måste göra maximalt antal jämförelser. Med tanke på den linjära prestandan för sammanslagning är det värsta fallet för sammanslagningen O (n log2 n).
- Fastän båda algoritmerna för snabb sortering och sammanslagning är baserade på delningen och erövreringsmetoden för sortering, skiljer sig de olika metoderna för att utföra delningen och sammanslagningen. För snabb sortering är huvuddelen av jobbet att dela upp listan i två dellistor som äger rum innan dellistorna sorteras. För Merge Sort är huvuddelen av jobbet att sammanfoga två dellistor som äger rum efter dellistan sorteras. Sammanfoga Sortera kräver ett tillfälligt arrangemang för att slå samman två delrader, medan det inte behövs ytterligare arrayutrymme för Snabb sortering, vilket gör det mer utrymmeffektivt än Marge Sorter.
Både Quick Sorter och Merge Sort algoritmer är baserade på divideringen och erövreringsmetoden för sortering. Men de skiljer sig åt med de metoder som används för att utföra delningen och sammanslagningen. De arbetar i princip med samma princip - att dela ett problem i två eller flera delproblem och sedan lösa dem rekursivt. Merge Sort är effektivare än Quick Sort i värsta fall, men de två är lika effektiva i det genomsnittliga fallet. Men snabb sortering är mer utrymmeeffektiv än merge sortering. Så snabb sortering är utan tvekan snabbare och bättre än sammanslagnings sortering men det blir ineffektivt i få situationer som när det gäller jämförelser.