Obrada podataka u polju vrši se sekvencijalnim nabrajanjem, upoređivanjem i pretraživanjem vjerovatnih vrijednosti. Istodobno, velika dimenzija niza značajno povećava troškove resursa. Vrijeme algoritma da uzastopno prolazi kroz sve elemente niza može se značajno smanjiti ako su unaprijed naručeni. Nizovi se obično sortiraju u rastućem redoslijedu, počevši od najmanjeg broja ili znaka. Algoritme za sortiranje treba odabrati prema uvjetima određenog zadatka.
Instrukcije
Korak 1
Postoji nekoliko načina za sortiranje niza. Najjednostavnije za algoritmiranje je sortiranje po mjehurićima, ali je i jedno od najsporijih. Suština ove metode je da sekvencijalno pređe niz podataka i uporedi svaki par elemenata. Ako je dijete manje od prethodnog, mjesta se zamjenjuju. Tada algoritam započinje ispočetka. Uzorak C koda za sortiranje:
int mass [10];
int el_min = 10;
za (int i = 0; ii; j--)
if (manje (mase [j], mase [j-1]))
SWAP (masa [j], masa [j-1]);
}
Korak 2
Jedan od optimalnih algoritama za sortiranje niza u rastućem redoslijedu smatra se metodom umetanja. Suština algoritma je oblikovanje zadanog niza između grupe elemenata (u rastućem redoslijedu). Posebni rukovatelj u petlji provjerava redoslijed niza. Za sortiranje u rastućem redoslijedu naveden je sljedeći uvjet. Ako je sljedeći element manji od prethodnog, uklanja se sa svog mjesta i postavlja na onaj koji odgovara njegovoj vrijednosti. Primjer koda za uzlazni program sortiranja u jeziku C:
int Kol = 40;
int masa [Kol], k;
za (int i = 1, j = 0; i <Kol; i ++)
{
k = masa ; // pomoćna varijabla za spremanje elementa niza
j = i - 1;
dok (k <masa [j])
{
masa [j + 1] = masa [j];
j--;
if (j <0) break;
masa [j + 1] = k;
}
}
Korak 3
Sljedeća često korištena metoda sortiranja je algoritam poredanja pronalaženjem minimalnog ili maksimalnog elementa u nizu. Prilikom sortiranja u rastućem redoslijedu, u trenutku prvog prolaska kroz niz, pronalazi se njegov element s najmanjom vrijednošću koji se postavlja na početak niza. Umjesto njega postavlja se element koji je prethodno zauzimao prvo mjesto. Daljnjim razmatranjem niza, ispunjeni prostor se isključuje. Traži se sljedeći najmanji element, smjesti se na drugo mjesto i tako dalje, sve dok se cijeli niz ne sortira. Sortiraj kod prema metodi pronalaženja minimalnog elementa liste:
int mass [30], bb;
int Kol = 30, min, ps;
za (int i = 0; i <Kol -1; i ++)
{
min = masa ;
pos = i;
za (int j = 0; j <Kol; j ++)
{
ako (masa [j] <min)
{
min = masa [j];
pos = j;
}
bb = masa ;
masa = masa [post];
mas [post] = bb;
}
}