Mis on massiivi sortimine?

Massiivide sortimine on protsess, mille käigus võetakse massiivi üksikud elemendid ja paigutatakse need teatud tüüpi loogilisse järjekorda vastavalt kasutaja määratud reeglitele. Protsess hõlmab massiivi ühe elemendi kaupa läbimist ja selle elemendi testimist ümbritsevate elementide suhtes, et teha kindlaks, kas see tuleb teisaldada massiivi muusse registrisse. Massiivide sortimisel saab kasutada mitmeid algoritme, eriti kui sortimistingimused on numbrilised, mitte midagi suvalisemat. Enamikku massiivi sorteerimisalgoritme mõõdetakse nende kiiruse ja tõhususe järgi, kusjuures kõige aeglasemaid algoritme on kõige lihtsam programmeerida ja kiireimaid on palju keerulisem.

Lihtsaimat massiivi sortimise algoritmi nimetatakse mullsorteerimiseks ja see on ka kõige aeglasem. Protsess algab tsükliga, mis astub läbi iga massiivi elemendi. Praegust elementi võrreldakse massiivi järgmise elemendiga ja kui järgmise elemendi väärtus on praegusest elemendist madalam, vahetatakse indeksite andmeid. Mullsordi puuduseks on see, et massiivi sortimiseks kõigi vajalike vahetuste tegemiseks tuleb massiivi mitu korda läbi vaadata. Kõige elementaarsemates rakendustes läbib sortimine kogu massiivi ühe täieliku korra iga selles sisalduva elemendi kohta.

Valiku sortimine kasutab algoritmi, mis teostab massiivi sortimise pisut tõhusamalt kui mullsortimine, kuid nõuab siiski mitut massiivi iteratsiooni. See sortimine algab massiivi läbimisega, et leida madalaima väärtusega element. Seejärel asetatakse see element massiivi esimesse indeksisse ja mõningaid jälgimismuutujaid suurendatakse. Seejärel tsükkel kordub, otsides nüüd madalaimat väärtust, mis seejärel asetatakse massiivi teise indeksisse. Protsess jätkub seni, kuni suurima väärtusega element asetatakse massiivi viimasesse indeksisse.

Massiivide sortimise meetodit, mis võib olla tõhus, kuid mõnikord keeruline rakendada, nimetatakse kiirsortimiseks. Kiirsortimine hõlmab väärtuse võtmist, mis on kõigi massiivi võimalike väärtuste keskel. Algoritm kõnnib läbi kõik massiivi elemendid ja paneb kõik mediaanarvust suuremad väärtused massiivi lõppu ja madalamad väärtused algusesse. Seda protsessi teostatakse rekursiivselt massiivi plokkidel, kuni lõpuks sorteeritakse kogu massiiv. Eeldades, et massiivi keskmine väärtus on üsna täpne, võib see olla väga kiire viis sortimiseks.

Üks tegur, mis võib massiivi sortimise algoritmi mõjutada, on vahendid, mille abil testitakse andmete samaväärsust. Lihtsaid numbreid on lihtne võrrelda, kumb väärtus on suurem, kuid see ei pruugi nii olla keeruliste andmeklasside puhul, mille puhul tuleb võrrelda mitut tingimust. Mida kauem kulub võrdlemiseks, kas üks element on teisest suurem või väiksem, seda kauem kulub algoritmil massiivi sortimiseks.