Razvrstavanje predmeta na popisu je svakodnevan zadatak i često dugotrajan. Izraz razvrstavanje uglavnom se odnosi na uređivanje stavki na popisu u uzlaznom ili silaznom redoslijedu na temelju unaprijed određenog odnosa narudžbe. Razvrstavanje je često namijenjeno pretraživanju, što je njegova još jedna temeljna djelatnost u obradi podataka. Zamislite kako bi bilo teško pretraživati riječ po rječniku da riječi u njemu nisu bile organizirane ili razvrstane. To je razlog zašto se unosi u rječnik rješavaju u standardnom abecednom redu. Brojni zadaci i proračuni postaju jednostavni samo razvrstavanjem. I tu dolazi do slike algoritmi za razvrstavanje.
Algoritam sortiranja nije ništa drugo nego metoda organiziranja elemenata popisa u određeni red, poput vrijednosti od najmanje do najviše, od najviše do najniže vrijednosti, rastućeg naloga, padajućeg reda, abecednog reda itd. Najčešće korištenih naloga su numerički i leksikografski red. Algoritmi često upotrebljavaju sortiranje kao ključnu potprogramu. Postoji širok raspon algoritama za razvrstavanje koji se koriste tijekom kojih se svaki koristi bogat broj tehnika. Jedan od takvih popularnih, a podjednako moćan algoritam, je algoritam Divide and Conquer, koji je algoritam temeljen na multi-razgranatoj rekurziji. Brzo sortiranje i spajanje sortiranja su dva najčešće korištena algoritma koja se temelje na algoritmu Divide and Conquer.
Quick Sort vrlo je učinkovit, ali učinkovit algoritam sortiranja zasnovan na pristupu podijeli i osvoji, koji je prilično sličan dinamičkom pristupu u kojem je problem podijeljen na dva ili više potproblema, a zatim se rekurzivno rješava. Ako je veličina potproblema dovoljno mala, onda se oni jednostavno rješavaju bez ikakvih problema. Nazvan i sortiranjem razmjene particija, algoritam brzog razvrstavanja dijeli popis koji će biti sortiran na tri glavna dijela: 1) element stožera (središnji elementi), 2) elementi manji od stožernog i 3) elementi veći od stožera. Sam zaokret pomiče se između dviju grupa do krajnjeg položaja i zatim se QUICK SORT primjenjuje rekurzivno.
Spajanje sortiranja je još jedan algoritam sortiranja opće namjene temeljen na tehnici podijeli i osvoji. To je jedan od najcjenjenijih i najpopularnijih algoritama za sortiranje osmišljen da se učinkovito koristi za sortiranje podataka koji se pohranjuju izvana u datoteku. Nudi ponašanje O (n log n) u najgorem slučaju dok koristite O (n) dodatnu pohranu. Zbirku „A“ dijeli na dvije manje zbirke od kojih se svaka razvrstava. U posljednjoj fazi ove dvije sortirane kolekcije spajaju se natrag u jedinstvenu kolekciju veličine n. Ovo će biti popis sortiranih. Algoritam je prilično brz, a također je stabilna vrsta i idealno je preferiran za povezane popise.
- I Quick Sort i Merge Sort su algoritmi sortiranja temeljeni na dijeljenju i osvajanju s istim osnovnim principom - podijeliti problem na dva ili više potproblema, a zatim ih rekurzivno riješiti. Međutim, razlikuju se u postupcima spajanja i prema izvedbi. Brzo razvrstavanje općenito je bolje i brže od ostalih algoritama sortiranja, uključujući Spajanje sortiranja kada je u pitanju mali skup podataka, dok Spajanje sortiranja održava dosljednost bez obzira na vrstu skupa podataka. Brzo razvrstavanje idealno je za nizove, dok je Merge Sort idealno za povezane popise.
- Sortiranje u algoritmu brzog sortiranja vrši se rekurzivno, a svaki rekurzivni poziv zahtijeva mjesto slaganja. Ne zahtijeva dodatni prostor za spajanje, osim jednog memorijskog prostora za spajanje. Kako je to algoritam sortiranja na mjestu, nije potreban dodatni prostor za obavljanje sortiranja. Zapravo koristi isti niz dok dijeli i spaja matricu. S druge strane, u Merge Sort, postoji nekoliko načina predstavljanja podataka u datoteci ili u nizu, pa su joj potrebna takva radna područja kao poddatoteke ili nizovi iste veličine koji zahtijevaju dodatni prostor.
- Najgore ponašanje brzog sortiranja događa se kada je particija neuravnotežena, što ovisi o tome koji se elementi koriste za particioniranje, u kojem slučaju se algoritam pokreće asimptotski jednako sporo kao što je vrsta umetanja. Najgora izvedba brzog sortiranja je O (n2) i ostavlja se kao vježba. Međutim, to se može izbjeći odabirom odgovarajuće osovine. Najgori slučaj Merge Sort, s druge strane, događa se kada je potrebno napraviti najveći broj usporedbi. S obzirom na linearnu izvedbu spajanja, najgora izvedba sortiranja spajanja je O (n log2 n).
- Iako se algoritam brzog sortiranja i spajanja sortiranja temelji na pristupu razvrstavanja i osvajanja za razvrstavanje, razlikuju se metodama koje se koriste za izvršavanje postupaka dijeljenja i spajanja. Za brzo sortiranje najveći dio posla sastoji se u podjeli popisa na dva pod-popisa koja se odvija prije nego što su pod-popisi razvrstani. Za Merge Sort, najveći dio posla sastoji se u spajanju dva podpisa koji se događaju nakon što su podpopisi poredani. Spajanje sortiranja zahtijeva privremeni niz za spajanje dva podračuna, dok za Brzo razvrstavanje nije potreban dodatni prostor polja, što čini prostor učinkovitijim od Marge Sort.
I algoritmi za brzo sortiranje i spajanje sortiraju se na osnovi dijeljenja i osvajanja za razvrstavanje. Međutim, one se razlikuju po metodama koje se koriste za provođenje postupaka dijeljenja i spajanja. U osnovi rade na istom principu - podijeliti problem na dva ili više pod-problema, a zatim ih rekurzivno rješavati. Spajanje sortiranja je učinkovitije od Brzog sortiranja u najgorem slučaju, ali dvije su podjednako učinkovite u prosječnom slučaju. Ali brzo sortiranje je učinkovitije prostor od sortiranja spajanja. Dakle, brzo sortiranje nesumnjivo je brže i bolje od sortiranja spajanjem, ali postaje neučinkovito u nekoliko situacija, primjerice u usporedbi..