Imports System
Public Class Program
Public Shared Sub rearrange_array(ByVal arr As Integer())
Dim tmp As Integer() = New Integer(arr.Length - 1) {}
For i As Integer = 0 To arr.Length - 1
tmp(arr(i)) = i
Next
For i As Integer = 0 To arr.Length - 1
arr(i) = tmp(i)
Next
End Sub
Public Shared Sub Main(ByVal args As String())
Dim arr As Integer() = New Integer() {3, 1, 0, 4, 5, 2}
' arr[arr[0]] = 3 -> arr[3] = 0
' arr[arr[1]] = 1 -> arr[1] = 1
' arr[arr[2]] = 0 -> arr[0] = 2
' arr[arr[3]] = 4 -> arr[4] = 3
' arr[arr[4]] = 5 -> arr[5] = 4
' arr[arr[5]] = 2 -> arr[2] = 5
rearrange_array(arr)
Console.WriteLine(String.Join(" ", arr))
End Sub
End Class
' run:
'
' 2 1 5 0 3 4
'