Evo nesto na brzinu ... nisam imao vremena da je optimalizujem. Mozda ti neko drugi napise neku bolju fn za ovo , a mozes i ovu da sredis...
Funkcija vraca prvih No najmanjih elemenata
Code:
Public Class Form1
'Array - ulazni Double niz, No - koliko elemenata se trazi
Public Function Min(ByVal Array() As Double, ByVal No As Double) As Double() ' vraca niz brojeva
Dim retarr(No - 1) As Double, n As Long, i As Long, cn As Double = 0
If (No > UBound(Array) + 1 Or No = 0) Then Return retarr ' ako je trazeno vise brojeva nego sto ima u nizu
For n = LBound(retarr) To UBound(retarr)
For i = LBound(Array) To UBound(Array)
If (n = LBound(retarr)) Then
If (Array(i) < cn) Then cn = Array(i)
Else
If cn = retarr(n - 1) Then
If (Array(i) > retarr(n - 1)) Then cn = Array(i)
Else
If (Array(i) > retarr(n - 1) And Array(i) < cn) Then cn = Array(i)
End If
End If
Next
retarr(n) = cn
Debug.Print(retarr(n))
Next
Return retarr
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim niz(9) As Double, n As Integer
For n = 0 To 9 ' punimo niz brojevima 9,8,7,6,5,4,3,2,1,0
niz(9 - n) = n
Next n
Min(niz, 5)
End Sub
End Class