import java.io.PrintStream; import java.util.ArrayList; import java.util.Random; public class InversionCount { public static void main(String[] args) { PrintStream out = System.out; // N is the number of elements in the initial list final int N = Integer.parseInt(args[0]); // the list ArrayList list = new ArrayList(); // add N random integers between 1 and MAX to the list final int MAX = 100; Random rng = new Random(); for (int i = 0; i < N; i++) { list.add(rng.nextInt(MAX) + 1); } out.println(list); int inversionCount = 0; for (int i = 0; i < N - 1; i++) { for (int j = i + 1; j < N; j++) { if (list.get(i) > list.get(j)) { inversionCount++; } } } out.println(inversionCount + " inversions"); } }