Što je sortiranje niza?

Razvrstavanje niza je proces uzimanja pojedinačnih elemenata niza i njihovog slaganja u neku vrstu logičkog reda prema nizu pravila definiranih od strane korisnika. Proces uključuje koračanje kroz niz, jedan po element, i testiranje tog elementa u odnosu na okolne elemente kako bi se utvrdilo treba li ga premjestiti na drugi indeks unutar niza. Prilikom izvođenja sortiranja niza, postoji nekoliko algoritama koji se mogu koristiti, posebno kada su uvjeti sortiranja numerički za razliku od nečeg proizvoljnijeg. Većina algoritama za razvrstavanje nizova mjeri se po njihovoj brzini i učinkovitosti, pri čemu je najsporije algoritme najlakše programirati, a najbrže mnogo složenije.

Najjednostavniji algoritam za razvrstavanje nizova naziva se sortiranje mjehurićima, a također je i najsporiji. Proces počinje s petljom koja prolazi kroz svaki element u nizu. Trenutni element se uspoređuje sa sljedećim elementom u nizu i, ako je sljedeći element niže vrijednosti od trenutnog elementa, podaci na indeksima se mijenjaju. Nedostatak sortiranja s mjehurićima je to što treba proći kroz niz nekoliko puta kako bi izvršio sve potrebne zamjene za sortiranje niza. U najosnovnijim implementacijama, sortiranje će proći kroz cijeli niz jedan put za svaki element koji sadrži.

Razvrstavanje odabirom koristi algoritam koji izvodi sortiranje niza na malo učinkovitiji način od sortiranja mjehurićima, ali i dalje zahtijeva višestruke iteracije kroz niz. Ova sorta počinje petljom kroz niz kako bi se pronašao element s najmanjom vrijednošću. Ovaj element se zatim stavlja u prvi indeks niza i neke varijable praćenja se povećavaju. Ciklus se zatim ponavlja, tražeći sljedeću najnižu vrijednost koja će se zatim smjestiti u drugi indeks niza. Proces se nastavlja sve dok se element najviše vrijednosti ne stavi u zadnji indeks niza.

Metoda sortiranja niza koja može biti učinkovita, ali ponekad složena za implementaciju, poznata je kao brzo sortiranje. Brzo sortiranje uključuje uzimanje vrijednosti koja je u sredini svih mogućih vrijednosti koje se nalaze u nizu. Algoritam prolazi kroz sve elemente niza i stavlja sve vrijednosti veće od srednjeg broja na kraj niza, a niže vrijednosti na početak. Ovaj proces se izvodi rekurzivno na blokovima niza sve dok se na kraju cijeli niz ne sortira. Pod pretpostavkom da je srednja vrijednost korištena za niz prilično točna, ovo može biti vrlo brz način sortiranja.

Jedan čimbenik koji može utjecati na algoritam sortiranja niza je način na koji se podaci testiraju na ekvivalentnost. Jednostavne brojeve je lako usporediti za koje je vrijednost veća, ali to možda nije slučaj za složene klase podataka u kojima je potrebno usporediti više uvjeta. Što je dulje potrebno za usporedbu je li jedan element veći ili manji od drugog, to će algoritam dulje trebati da sortira niz.