Public Class Tester
Private Shared Function SortAscending(ByVal element1 As Integer, _
ByVal element2 As Integer) As Boolean
Return element1 > element2
End Function ' SortAscending
Private Shared Function SortDescending(ByVal element1 As Integer, _
ByVal element2 As Integer) As Boolean
Return element1 < element2
End Function ' SortDescending
Public Shared Sub Main
Dim mBubbleSort As New BubbleSort()
Dim mElementArray As Integer() = New Integer(9) {}
Dim randomNumber As Random = New Random()
Dim i As Integer
' create String with 10 random numbers
For i = 0 To mElementArray.GetUpperBound(0)
mElementArray(i) = randomNumber.Next(100)
Console.WriteLine(mElementArray(i))
Next
mBubbleSort.SortArray(mElementArray, AddressOf SortAscending)
For i = 0 To mElementArray.GetUpperBound(0)
Console.Write(mElementArray(i) & " " )
Next
Console.WriteLine()
mBubbleSort.SortArray(mElementArray, AddressOf SortDescending)
For i = 0 To mElementArray.GetUpperBound(0)
Console.Write(mElementArray(i) & " " )
Next
End Sub
End Class
Public Class BubbleSort
Public Delegate Function Comparator( _
ByVal element1 As Integer, _
ByVal element2 As Integer) As Boolean
Public Sub SortArray(ByVal array As Integer(), _
ByVal Compare As Comparator)
Dim i, pass As Integer
For pass = 0 To array.GetUpperBound(0)
For i = 0 To array.GetUpperBound(0) - 1
If Compare(array(i), array(i + 1)) Then
Swap(array(i), array(i + 1))
End If
Next ' inner loop
Next ' outer loop
End Sub ' SortArray
Private Sub Swap(ByRef firstElement As Integer, _
ByRef secondElement As Integer)
Dim hold As Integer
hold = firstElement
firstElement = secondElement
secondElement = hold
End Sub ' Swap
End Class
|