logo

Rask sortering vs sammenslåingssortering

Rask sortering er en intern algoritme som er basert på del og hersk strategi. I dette:

  • Matrisen av elementer er delt inn i deler gjentatte ganger til det ikke er mulig å dele den videre.
  • Det er også kjent som sortering av partisjonsutveksling .
  • Den bruker et nøkkelelement (pivot) for å partisjonere elementene.
  • En venstre partisjon inneholder alle de elementene som er mindre enn pivoten og en høyre partisjon inneholder alle de elementene som er større enn nøkkelelementet.

kvikksortering Slå sammen sortering er en ekstern algoritme og basert på del og hersk strategi. I dette:

  • Elementene deles opp i to sub-arrays (n/2) igjen og igjen til bare ett element er igjen.
  • Slå sammen sortering bruker ekstra lagringsplass for sortering av hjelpearrayen.
  • Merge sort bruker tre matriser der to brukes til å lagre hver halvdel, og den tredje eksterne brukes til å lagre den endelig sorterte listen ved å slå sammen to andre og hver matrise sorteres deretter rekursivt.
  • Til slutt blir alle undermatrisene slått sammen for å gjøre det til 'n' elementstørrelsen til matrisen.

Merge-Sort-Tutorial



Rask sortering vs sammenslåingssortering

    Partisjon av elementer i matrisen: I flettesorteringen deles matrisen i bare 2 halvdeler (dvs. n/2). mens i tilfelle av rask sortering, deles matrisen i et hvilket som helst forhold. Det er ingen tvang til å dele utvalget av elementer i like deler i rask sortering. Worst case kompleksitet: Den verste tilfelle kompleksiteten av rask sortering er O(n^2) ettersom det er behov for mange sammenligninger i verste tilstand. mens i merge sort, verste tilfelle og gjennomsnittlig tilfelle har samme kompleksitet O(n log n). Bruk med datasett: Slå sammen sortering kan fungere godt på alle typer datasett uavhengig av størrelsen (enten stor eller liten). mens den raske sorteringen ikke fungerer bra med store datasett. Krav til ekstra lagringsplass : Sammenslåingssortering er ikke på plass fordi det krever ekstra minneplass for å lagre hjelpearrayene. mens den raske sorteringen er på plass siden den ikke krever ekstra lagring. Effektivitet: Slå sammen sortering er mer effektivt og fungerer raskere enn rask sortering i tilfelle større matrisestørrelse eller datasett. mens rask sortering er mer effektiv og fungerer raskere enn sammenslåingssortering i tilfelle mindre matrisestørrelse eller datasett. Sorteringsmetode: Hurtigsortering er intern sorteringsmetode der dataene sorteres i hovedminnet. mens sammenslåingssortering er en ekstern sorteringsmetode der dataene som skal sorteres ikke kan lagres i minnet og trenger hjelpeminne for sortering. Stabilitet : Merge sort er stabil ettersom to elementer med lik verdi vises i samme rekkefølge i sortert utdata som de var i den usorterte inngangsmatrisen. mens rask sortering er ustabil i dette scenariet. Men det kan gjøres stabilt ved å bruke noen endringer i koden. Foretrukket for : Hurtigsortering er foretrukket for matriser. mens sammenslåingssortering foretrekkes for koblede lister. Referanselokalitet: Quicksort viser god cache-lokalitet og dette gjør quicksort raskere enn merge-sortering (i mange tilfeller som i virtuelt minnemiljø).
Grunnlag for sammenligning Rask sortering Slå sammen sortering
Partisjonen av elementer i matrisen Delingen av en rekke elementer er i et hvilket som helst forhold, ikke nødvendigvis delt i to. I flettesorteringen deles matrisen i bare 2 halvdeler (dvs. n/2).
Verste tilfelle kompleksitet O(n^2) O(nlogn)
Fungerer godt på Det fungerer bra på mindre array Den fungerer fint på alle størrelser av array
Utførelseshastighet Det fungerer raskere enn andre sorteringsalgoritmer for små datasett som utvalgssortering etc Den har en jevn hastighet på alle datastørrelser
Krav til ekstra lagringsplass Mindre (på plass) Mer (ikke på plass)
Effektivitet Ineffektiv for større matriser Mer effektivt
Sorteringsmetode Innvendig Utvendig
Stabilitet Ikke stabil Stabil
Foretrukket for for Arrays for koblede lister
Referansested flink dårlig
Stort arbeid Hovedarbeidet er å partisjonere matrisen i to undermatriser før du sorterer dem rekursivt. Hovedarbeidet er å kombinere de to sub-arrayene etter å ha sortert dem rekursivt.
Inndeling av array Inndeling av en matrise i undermatriser kan eller kan ikke være balansert ettersom matrisen er partisjonert rundt pivoten. Inndeling av en matrise i undermatrise er alltid balansert ettersom den deler matrisen nøyaktig på midten.
Metode Rask sortering er en på plass sorteringsmetode. Slå sammen sortering er ikke på plass sorteringsmetode.
Slår sammen Quicksort trenger ikke eksplisitt sammenslåing av de sorterte undermatrisene; snarere omorganiserte sub-arrayene riktig under partisjonering. Merge sort utfører eksplisitt sammenslåing av sorterte undermatriser.
Rom Quicksort krever ikke ekstra matriseplass. For sammenslåing av sorterte undermatriser trenger den en midlertidig matrise med størrelsen lik antall inngangselementer.