How to arrange even first and odd after in array with VB.NET

1 Answer

0 votes
Imports System
Imports System.Threading.Interlocked
 
Public Class Program
    Public Shared Sub ArrangeEvenOdd(ByVal arr As Integer())
        Dim left As Integer = 0
        Dim right As Integer = arr.Length - 1
 
        While left < right
            If (arr(left) Mod 2) <> 0 Then
                While (arr(right) Mod 2 = 1) AndAlso right > left
                    right -= 1
                End While
 
                Dim tmp As Integer = arr(left)
                arr(Math.Min(Increment(left), left - 1)) = arr(right)
                arr(Math.Max(Decrement(right), right + 1)) = tmp
            Else
                left += 1
            End If
        End While
    End Sub
 
    Public Shared Sub Main(ByVal args As String())
        Dim arr As Integer() = New Integer() {3, 4, 2, 9, 4, 8, 5, 6}
         
        ArrangeEvenOdd(arr)
 
        For Each n As Integer In arr
            Console.Write(n & " ")
        Next
    End Sub
End Class
 
 
 
 
' run:
'
' 6 4 2 8 4 9 5 3
'

 



answered Aug 28, 2022 by avibootz
edited Aug 28, 2022 by avibootz

Related questions

1 answer 103 views
1 answer 100 views
1 answer 105 views
1 answer 95 views
1 answer 104 views
1 answer 93 views
...