// 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.
using System;
class Program
{
static void printInversionPair(int[] arr) {
int size = arr.Length;
if (size <= 1) {
return;
}
bool sorted = true;
for (int i = 0; i < size; i++) {
for (int j = i + 1; j < size; j++) {
if (arr[i] > arr[j]) {
sorted = false;
Console.WriteLine(arr[i] + ", " + arr[j]);
}
}
}
if (sorted)
Console.WriteLine("sorted");
}
static void Main() {
int[] arr1 = {1, 7, 2, 5, 4, 3, 9, 8};
printInversionPair(arr1);
int[] arr2 = {1, 2, 3, 4, 5, 6, 7, 8, 9};
printInversionPair(arr2);
}
}
/*
run:
7, 2
7, 5
7, 4
7, 3
5, 4
5, 3
4, 3
9, 8
sorted
*/