Prednosti i nedostaci sortiranja mjehurićima

Programeri koji prelaze s razvoja računala i weba na kodiranje za mobilne uređaje ili ugrađene sustave otkrivaju da se više vremena troši na odabir i kodiranje vlastitih struktura podataka i algoritama. S manje memorije i ograničenom pohranom podataka, nema mjesta za unaprijed izgrađene biblioteke ili okvire. Dakle, za one koji trebaju napisati svoje vlastite rutine sortiranja, evo nekoliko razmatranja o odabiru niskog sortiranja s mjehurićima.

Pozadina

Razvrstavanje mjehurićima je jednostavan algoritam koji razvrstava popis stavki u memoriji. S obzirom na niz, kod opetovano uspoređuje svaki par susjednih stavki i mijenja ih ako nisu u redu. Proces se ponavlja sve dok više ne dođe do zamjene. Kad bi bilo moguće vidjeti niz dok je sortiranje u tijeku, niske vrijednosti bi se "spustile" na vrh, dok bi velike vrijednosti potonule na dno. Evo relevantnog koda u Visual Basicu 2010:

Video dana

Dok je swap = True swap = False Za i = 0 Do tbl.length - 2 Ako je tbl (i) > tbl (i + 1) Tada je tmp = tbl (i) tbl (i) = tbl (i + 1) tbl (i + 1) = tmp swap = True End If Next End Dok

Kada odabrati sortiranje mjehurićima

Ovaj algoritam ima nekoliko prednosti. Jednostavan je za pisanje, lako razumljiv i potrebno je samo nekoliko redaka koda. Podaci su razvrstani na mjestu tako da postoji malo memorije, a nakon sortiranja podaci su u memoriji, spremni za obradu. Glavni nedostatak je količina vremena koja je potrebna za sortiranje. Prosječno vrijeme raste gotovo eksponencijalno kako se povećava broj elemenata tablice. Deset puta veći broj stavki potrebno je gotovo sto puta duže za sortiranje.

Druge vrste nizova

Algoritmi za razvrstavanje razlikuju se po složenosti, brzini i troškovima. Vrsta mjehurića je najmanje složena, ali i jedna od najsporijih. Ostale vrste koje se temelje na nizu, poput sortiranja umetanjem i razmjene, malo su brže, ali zahtijevaju više koda (pogledajte reference u nastavku). Glavna prednost sortiranja temeljenih na nizu je ta što koriste najmanje koda i zauzimaju najmanju količinu radne memorije. Razmotrite ove vrste za jednostavne nizove s manje od nekoliko stotina stavki.

Složeni algoritmi sortiranja

Veći skupovi podataka zahtijevaju složeniji kod i više memorije. Brzo sortiranje i sortiranje u hrpi dijele i kopiraju skupove podataka radi optimizacije broja usporedbi. Brzo sortiranje kontinuirano dijeli popis, a zatim ga ponovno sastavlja sortiranim redoslijedom. Razvrstavanje hrpe kopira podatke u strukturu stabla, a zatim prelazi stablo kako bi kopiralo podatke natrag u red. Oba su brza i učinkovita, ali zahtijevaju više koda i puno više radne memorije. Odaberite ove algoritme za velike skupove podataka.