Imports System
Public Class Program
Public Sub print(ByVal arr As Integer())
Dim size As Integer = arr.Length
For i As Integer = 0 To size - 1
Console.Write(arr(i) & " ")
Next
Console.WriteLine()
End Sub
Public Sub reverse(ByVal arr As Integer(), ByVal start As Integer, ByVal [end] As Integer)
Dim temp As Integer = 0
Dim i As Integer = start, j As Integer = [end]
While i <= [end] AndAlso j > i
temp = arr(i)
arr(i) = arr(j)
arr(j) = temp
i += 1
j -= 1
End While
End Sub
Public Sub split(ByVal arr As Integer(), ByVal split_point As Integer)
Dim size As Integer = arr.Length
If size <= 1 AndAlso split_point < 1 AndAlso split_point >= size Then
Return
End If
' reverse first part
reverse(arr, 0, split_point - 1)
' reverse second part
reverse(arr, split_point, size - 1)
' reverse all array
reverse(arr, 0, size - 1)
End Sub
Public Shared Sub Main()
Dim obj As Program = New Program()
Dim arr As Integer() = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
Dim split_point As Integer = 3
obj.split(arr, split_point)
obj.print(arr)
End Sub
End Class
' run:
'
'