Greitas rūšiavimas yra vidinis algoritmas, pagrįstas „skaldyk ir valdyk“ strategija. Šiame:
- Elementų masyvas dalijamas į dalis pakartotinai, kol nebeįmanoma jo skaidyti toliau.
- Jis taip pat žinomas kaip skirsnių mainų rūšiavimas .
- Elementams skirstyti naudojamas pagrindinis elementas (pivot).
- Viename kairiajame skirsnyje yra visi tie elementai, kurie yra mažesni už sukimąsi, o viename dešiniajame – visi elementai, kurie yra didesni už pagrindinį elementą.
Sujungti rūšiavimą yra išorinis algoritmas, pagrįstas „skaldyk ir valdyk“ strategija. Šiame:
- Elementai vėl ir vėl suskaidomi į du pomasyvius (n/2), kol lieka tik vienas elementas.
- Rūšiavimo sujungimas naudoja papildomą saugyklą pagalbiniam masyvui rūšiuoti.
- Sujungti rūšiavimą naudoja tris masyvus, iš kurių du naudojami kiekvienai pusei saugoti, o trečiasis išorinis naudojamas galutiniam surūšiuoto sąrašo saugojimui, sujungiant kitus du, o kiekvienas masyvas rūšiuojamas rekursyviai.
- Galiausiai visi antriniai masyvai sujungiami, kad būtų „n“ masyvo elemento dydis.

Greitas rūšiavimas vs sujungimo rūšiavimas
- Elementų padalijimas masyve : sujungimo rūšiavimo atveju masyvas yra padalintas tik į 2 dalis (t. y. n/2). tuo tarpu greito rūšiavimo atveju masyvas padalijamas į bet kokį santykį. Nereikia padalyti elementų masyvo į lygias dalis greitai rūšiuojant. Blogiausio atvejo sudėtingumas: Blogiausio atvejo greitojo rūšiavimo sudėtingumas yra O(n^2), nes reikia daug palyginti blogiausiomis sąlygomis. tuo tarpu suliejant rūšiavimą, blogiausias ir vidutinis atvejis turi tą patį sudėtingumą O(n log n). Naudojimas su duomenų rinkiniais : Sujungimo rūšiavimas gali gerai veikti bet kokio tipo duomenų rinkiniuose, neatsižvelgiant į jų dydį (didelį ar mažą). kadangi greitas rūšiavimas negali gerai veikti su dideliais duomenų rinkiniais. Papildomos saugyklos vietos poreikis : Sujungimo rūšiavimas neveikia, nes reikia papildomos atminties vietos pagalbiniams masyvams saugoti. kadangi greitas rūšiavimas yra įdiegtas, nes jam nereikia jokios papildomos saugyklos. Efektyvumas: sujungimo rūšiavimas yra efektyvesnis ir veikia greičiau nei greitasis rūšiavimas, jei masyvo dydis arba duomenų rinkiniai yra didesni. kadangi greitasis rūšiavimas yra efektyvesnis ir veikia greičiau nei sujungimo rūšiavimas, jei masyvo dydis arba duomenų rinkiniai yra mažesni. Rūšiavimo metodas: greitasis rūšiavimas yra vidinis rūšiavimo metodas, kai duomenys rūšiuojami pagrindinėje atmintyje. kadangi sujungimo rūšiavimas yra išorinis rūšiavimo metodas, kai rūšiuojami duomenys negali būti talpinami atmintyje ir reikalinga pagalbinė atmintis rūšiavimui. Stabilumas: sujungimo rūšiavimas yra stabilus, nes du vienodos vertės elementai surūšiuotoje išvestyje rodomi ta pačia tvarka, kaip ir įvesties nerūšiuotame masyve. kadangi greitasis rūšiavimas pagal šį scenarijų yra nestabilus. Tačiau jį galima padaryti stabilų pakeitus kodą. Pageidautina: masyvams pageidaujama greito rūšiavimo. tuo tarpu susietiems sąrašams pirmenybė teikiama sujungimo rūšiavimui. Nuorodos vieta: Greitasis rūšiavimas pasižymi gera talpyklos vieta, todėl greitasis rūšiavimas yra greitesnis nei suliejimo rūšiavimas (daugeliu atvejų, pavyzdžiui, virtualiosios atminties aplinkoje).
| Palyginimo pagrindas | Greitas rūšiavimas | Sujungti Rūšiuoti |
|---|---|---|
| Elementų skaidymas masyve | Elementų masyvo padalijimas yra bet kokiu santykiu, nebūtinai padalintas į pusę. | Sujungimo rūšiavimo metu masyvas yra padalintas tik į 2 dalis (t. y. n/2). |
| Blogiausio atvejo sudėtingumas | O(n^2) | O (neprisijungęs) |
| Puikiai veikia | Tai gerai veikia mažesniame masyve | Jis puikiai veikia bet kokio dydžio masyve |
| Vykdymo greitis | Jis veikia greičiau nei kiti rūšiavimo algoritmai mažiems duomenų rinkiniams, pvz., Atrankos rūšiavimui ir kt | Jis turi pastovų bet kokio dydžio duomenų greitį |
| Papildomos saugyklos vietos poreikis | Mažiau (vietoje) | Daugiau (ne vietoje) |
| Efektyvumas | Neefektyvus didesniems masyvams | Efektyvesnis |
| Rūšiavimo būdas | Vidinis | Išorinis |
| Stabilumas | Ne Stabilus | Stabilus |
| Pageidautina | už Arrays | susietiems sąrašams |
| Nuorodos vieta | Gerai | vargšas |
| Pagrindinis darbas | Pagrindinis darbas yra padalinti masyvą į du antrinius masyvus prieš rūšiuojant juos rekursyviai. | Pagrindinis darbas yra sujungti du masyvus, juos surūšiavus rekursyviai. |
| Masyvo padalijimas | Masyvo padalijimas į antrinius matricas gali būti subalansuotas arba ne, nes masyvas yra padalintas aplink ašį. | Masyvo padalijimas į submasyvą visada subalansuotas, nes masyvas padalijamas tiksliai per vidurį. |
| Metodas | Greitas rūšiavimas yra rūšiavimo vietoje metodas. | Rūšiavimo sujungimas ne vietoje – rūšiavimo metodas. |
| Sujungimas | Greitam rūšiavimui nereikia aiškiai sujungti surūšiuotų pomasyvių; greičiau submasyvai buvo tinkamai pertvarkyti skaidant. | Sujungimo rūšiavimas atlieka aiškų surūšiuotų antrinių masyvų sujungimą. |
| Erdvė | Greitasis rūšiavimas nereikalauja papildomos masyvo vietos. | Norint sujungti surūšiuotus pomasyvius, reikalingas laikinas masyvas, kurio dydis lygus įvesties elementų skaičiui. |