Array 50. Дан целочисленный массив A размера N, являющийся перестановкой (определение перестановки дано в задании Array49). Найти количество инверсий в данной перестановке, то есть таких пар элементов \(A_I\) и \(A_J\), в которых большее число находится слева от меньшего: \(A_I > A_J\) при \(I < J\).

Решение на Python 3

import random

N = random.randrange(2,4)
a = [i+1 for i in range(N)]
random.shuffle(a)

print("N:",N)
print("Array:",a)

n_inverse = 0
for i in range(0,N-1) :
for j in range(i+1,N) :
if a[i] > a[j] :
n_inverse += 1

print("Number of Inverse:", n_inverse)