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
77
24
72
44
64
75
23
44
93
73
23 24 44 44 64 72 73 75 77 93
93 77 75 73 72 64 44 44 24 23 "