Imports System
Class Program
Private Shared Sub SortBinaryArray(ByVal arr As Integer())
Dim left As Integer = 0 ' Index to track the left side
Dim right As Integer = arr.Length - 1 ' Index to track the right side
While left < right
If arr(left) = 0 Then
Console.WriteLine($"left: {left}")
left += 1
ElseIf arr(right) = 1 Then
Console.WriteLine($"right: {right}")
right -= 1
' If left is 1 and right is 0, swap them
Else
Dim temp As Integer = arr(left)
arr(left) = arr(right)
arr(right) = temp
Console.WriteLine($"swap() left: {left} right: {right}")
left += 1
right -= 1
End If
End While
End Sub
Public Shared Sub Main()
Dim arr As Integer() = {1, 0, 1, 0, 1, 0, 0, 1, 0}
SortBinaryArray(arr)
Console.Write("Sorted array: ")
For Each num As Integer In arr
Console.Write(num & " ")
Next
End Sub
End Class
' run:
'
' swap() left: 0 right: 8
' left: 1
' right: 7
' swap() left: 2 right: 6
' left: 3
' swap() left: 4 right: 5
' Sorted list: 0 0 0 0 0 1 1 1 1
'