Sortiranje

3. Sortiranje izborom najmanjeg elementa (eng. Selection sort)

3.1. Algoritam

Promotrimo na istom primjeru kao i prethodni algoritam.

Neka su u niz A upisane sljedeće vrijednosti:

U prvom prolasku kroz niz pronađe se najmanji element koji se zatim zamijeni s prvim elementom (dakako, ako nije baš taj element najmanji).

U našem primjeru, najmanji element je 1 i nalazi se na petome mjestu u nizu. Zamijenimo elemente koji se nalaze na prvome i petome mjestu.

Rezultat nakon prvog prolaska kroz niz je sljedeći:

Najmanji element niza doveden je na prvo mjesto.

U drugom prolasku kroz polje ponavlja se isti postupak s time da prvi element ostaje na svojemu mjestu.

Rezultat je ovaj:


Na kraju, u četvrtom prolasku kroz niz uspoređuju se vrijednosti 4. i 5. elementa.


Rezultat je niz u kojem su vrijednosti elemenata poredane u rastućem redoslijedu.


Pseudokod:

za i=1 do n-1 činiti
{
     mjesto_min=i;
     za j=i+1 do n činiti
           ako je a[j]<a[mjesto_min] onda
                mjesto_min=j
     zamijeni(a[i],a[mjesto_min])
}

Ili u programskom jeziku C:

for(i=0;i<n-1;i++)
{
  min=i;
  for(j=i+1;j<n;j++)
      if (a[j]<a[min])
         min=j;
  t=a[i];
  a[i]=a[min];
  a[min]=t;
}