Sortiranje
3. Sortiranje izborom najmanjeg elementa (eng. Selection sort)
3.1. Algoritam
Promotrimo na istom primjeru kao i prethodni algoritam.
{
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])
}
{
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;
}
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.
{
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;
}