'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