Kas yra masyvo rūšiavimas?

Masyvo rūšiavimas – tai atskirų masyvo elementų paėmimas ir jų išdėstymas tam tikra logine tvarka pagal vartotojo apibrėžtas taisykles. Procesas apima masyvo perėjimą po vieną elementą ir to elemento patikrinimą su aplinkiniais elementais, siekiant nustatyti, ar jį reikia perkelti į kitą masyvo indeksą. Atliekant masyvo rūšiavimą, galima naudoti kelis algoritmus, ypač kai rūšiavimo sąlygos yra skaitinės, o ne savavališkesnės. Dauguma masyvo rūšiavimo algoritmų yra matuojami pagal jų greitį ir efektyvumą, lėčiausius algoritmus lengviausia programuoti, o greičiausius – daug sudėtingesni.

Paprasčiausias masyvo rūšiavimo algoritmas vadinamas burbulų rūšiavimu, be to, jis yra lėčiausias. Procesas prasideda kilpa, kuri pereis per kiekvieną masyvo elementą. Dabartinis elementas lyginamas su kitu masyvo elementu ir, jei kito elemento vertė mažesnė nei dabartinio elemento, indeksų duomenys perjungiami. Burbulų rūšiavimo trūkumas yra tas, kad norint atlikti visus būtinus apsikeitimus, kad būtų galima rūšiuoti masyvą, reikia kelis kartus pereiti per masyvą. Paprasčiausiuose įgyvendinimuose rūšiavimas per visą masyvą bus perkeltas vieną kartą kiekvienam jame esančiam elementui.

Atrankos rūšiavimui naudojamas algoritmas, kuris masyvo rūšiavimą atlieka šiek tiek efektyviau nei burbulų rūšiavimas, bet vis tiek reikalauja kelių masyvo iteracijų. Šis rūšiavimas prasideda masyve, norint rasti mažiausią vertę turintį elementą. Tada šis elementas įdedamas į pirmąjį masyvo indeksą, o kai kurie stebėjimo kintamieji padidinami. Tada ciklas kartojasi, dabar ieškant kitos mažiausios reikšmės, kuri bus įtraukta į antrąjį masyvo indeksą. Procesas tęsiasi tol, kol didžiausios vertės elementas įtraukiamas į paskutinį masyvo indeksą.

Masyvo rūšiavimo metodas, kuris gali būti efektyvus, bet kartais sudėtingas įgyvendinti, yra žinomas kaip greitasis rūšiavimas. Greitasis rūšiavimas apima vertės, kuri yra visų galimų masyve esančių verčių viduryje, paėmimą. Algoritmas eina per visus masyvo elementus ir visas reikšmes, didesnes už vidutinį skaičių, pateikia masyvo pabaigoje, o mažesnes – pradžioje. Šis procesas rekursyviai atliekamas masyvo blokuose, kol pabaigoje visas masyvas surūšiuojamas. Darant prielaidą, kad vidutinė masyvo reikšmė yra gana tiksli, tai gali būti labai greitas rūšiavimo būdas.

Vienas veiksnys, galintis turėti įtakos masyvo rūšiavimo algoritmui, yra priemonės, kuriomis tikrinamas duomenų lygiavertiškumas. Nesunku palyginti paprastus skaičius, kurių vertė yra didesnė, tačiau tai gali būti ne sudėtingų duomenų klasių, kuriose reikia palyginti kelias sąlygas, atveju. Kuo ilgiau užtrunka palyginti, ar vienas elementas yra didesnis ar mažesnis už kitą, tuo ilgiau užtruks, kol algoritmas surūšiuos masyvą.