' Inversion for an array indicates how far (or close) the array is from being sorted.
' If the array is sorted then the Inversion is 0.
Imports System
Public Class Program
Public Shared Sub printInversionPair(ByVal arr As Integer())
Dim size As Integer = arr.Length
If size <= 1 Then
Return
End If
Dim sorted As Boolean = True
For i As Integer = 0 To size - 1
For j As Integer = i + 1 To size - 1
If arr(i) > arr(j) Then
sorted = False
Console.WriteLine(arr(i) & ", " & arr(j))
End If
Next
Next
If sorted Then Console.WriteLine("sorted")
End Sub
Public Shared Sub Main()
Dim arr1 As Integer() = {1, 7, 2, 5, 4, 3, 9, 8}
printInversionPair(arr1)
Dim arr2 As Integer() = {1, 2, 3, 4, 5, 6, 7, 8, 9}
printInversionPair(arr2)
End Sub
End Class
' run:
'
' 7, 2
' 7, 5
' 7, 4
' 7, 3
' 5, 4
' 5, 3
' 4, 3
' 9, 8
' sorted
'