How to segregate all 0 on left side and all 1 on right side of a given array of 0 and 1 in VB.NET

1 Answer

0 votes
Imports System

Public Class Program
	Public Shared Sub Main()
        Dim arr As Integer() = {1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0}
        Dim left As Integer = 0, right As Integer = arr.Length - 1

        While left < right

            While arr(left) = 0 AndAlso left < right
                left += 1
            End While

            While arr(right) = 1 AndAlso left < right
                right -= 1
            End While

            If left < right Then
                arr(left) = 0
                arr(right) = 1
                left += 1
                right -= 1
            End If
        End While

        Console.Write(String.Join(", ", arr))
    End Sub
End Class




' run:
'
' 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1
'

 



answered Nov 20, 2021 by avibootz
...