Objašnjeni algoritmi sortiranja

Algoritmi za sortiranje skup su uputa koji kao ulaz uzimaju niz ili popis i raspoređuju stavke u određeni redoslijed.

Sorte su najčešće numeričkim ili oblikom abecednog (nazvanog leksikografskim) redoslijedom, a mogu biti i rastućim (AZ, 0-9) ili silaznim (ZA, 9-0) redoslijedom.

Zašto su algoritmi sortiranja važni

Budući da sortiranje često može smanjiti složenost problema, to je važan algoritam u računalnim znanostima. Ovi algoritmi imaju izravnu primjenu u algoritmima pretraživanja, algoritmima baza podataka, metodama dijeljenja i osvajanja, algoritmima strukture podataka i mnogim drugim.

Neki uobičajeni algoritmi sortiranja

Neki od najčešćih algoritama za sortiranje su:

  • Sortiranje odabira
  • Razvrstavanje mjehurića
  • Sortiranje umetanja
  • Spoji sortiranje
  • Brzo sortiranje
  • Sortiranje po hrpi
  • Brojanje Sortiraj
  • Radix Sortiraj
  • Sortiraj kantu

Klasifikacija algoritma sortiranja

Algoritmi sortiranja mogu se kategorizirati na temelju sljedećih parametara:

  1. Na temelju broja zamjena ili inverzije To je koliko je puta algoritam zamijenio elemente za sortiranje unosa. Selection Sortzahtijeva minimalan broj zamjena.
  2. Na temelju broja usporedbi To je koliko je puta algoritam uspoređivao elemente za sortiranje ulaza. Koristeći oznaku Big-O, gore navedeni primjeri algoritama za sortiranje zahtijevaju barem O(nlogn)usporedbe u najboljem slučaju i O(n^2)usporedbe u najgorem slučaju za većinu rezultata.
  3. Na temelju rekurzije ili nerekurzije Neki algoritmi za sortiranje, poput Quick Sort, koriste rekurzivne tehnike za sortiranje unosa. Ostali algoritmi za sortiranje, poput Selection Sortili Insertion Sort, koriste nerekurzivne tehnike. Konačno, neki algoritmi za sortiranje, poput Merge Sort, koriste i rekurzivne i nerekurzivne tehnike za sortiranje unosa.
  4. Na temelju stabilnosti algoritmi za sortiranje kažu da su stableako algoritam održava relativni redoslijed elemenata s jednakim ključevima. Drugim riječima, dva ekvivalentna elementa ostaju istim redoslijedom u sortiranom izlazu kao što su bili i na ulazu.
  5. Insertion sort,, Merge Sorti Bubble Sortstabilni su
  6. Heap Sorta Quick Sortnisu stabilne
  7. Na temelju zahtjeva za dodatnim prostorom algoritmi za sortiranje kažu da jesu in placeako im je potreban stalan O(1)dodatni prostor za sortiranje.
  8. Insertion sorti Quick-sortsu in placevrsta kao što smo premjestiti elemente oko okretišta i zapravo ne koriste zaseban niz koji nije slučaj u pisma koje vrste, gdje je veličina ulaza mora biti dodijeljen unaprijed pohraniti izlaz tijekom vrste.
  9. Merge Sortje primjer out placesortiranja jer za svoje radnje treba dodatni prostor u memoriji.

Najbolja moguća vremenska složenost za bilo kakvo sortiranje na temelju usporedbe

Bilo koji algoritam sortiranja zasnovan na usporedbi mora napraviti najmanje nLog2n usporedbe kako bi sortirao ulazni niz, a sortiranje Heapsort i merge asimptotski su optimalne sorte usporedbe. To se lako može dokazati crtanjem dijagrama stabla odluka.