'Primer 12b: sortiranje izborom (selection sort)
'Metoda uzastopnih minimuma
Sub selectionSort(niz() As Integer, ByVal n As Integer)
Dim i As Integer 'Brojac
Dim j As Integer 'Brojac
Dim p As Integer ' Pomocna promenljiva za zamenu
For i = 1 To n - 1 'odredjujemo minimum redom od 1. do (n-1). pozicije
For j = i + 1 To n 'i-tu poziciju uporedjujemo sa svim ostalima
If niz(j) < niz(i) Then
p = niz(i)
niz(i) = niz(j)
niz(j) = p
End If
Next j
Next i
End Sub
'efikasnija verzija sa manje zamena
Sub selectionSort2(niz() As Integer, ByVal n As Integer)
Dim i As Integer, j As Integer 'Brojaci
Dim indeksNajmanjeg As Integer
Dim p As Integer ' Pomocna promenljiva za zamenu
For i = 1 To n - 1 'odredjujemo minimum redom od 1. do (n-1). pozicije
indeksNajmanjeg = i
For j = i + 1 To n 'i-tu poziciju uporedjujemo sa svim ostalima
If niz(j) < niz(indeksNajmanjeg) Then
indeksNajmanjeg = j
End If
Next j
'zamenu radimo tek kad znamo ko je i-ti najmanji
p = niz(i)
niz(i) = niz(indeksNajmanjeg)
niz(indeksNajmanjeg) = p
Next i
End Sub