Изменения
→Алгоритм построения за O(N)
BUCKET=sqrt(MAX)
'''int''' Answer = 0<font color=green> // изначально кол-во инверсий</font>
'''int''' Position = (Permutation[i] - 1)/(MAX / BUCKET) <font color=green>// Определяем в каком кармане должен лежать элемент</font>
'''int''' NewPosition = 0
'''while'''(NewPosition < Bank[pos].size && Bank[pos][NewPosition] < Permutation[i] ) <font color=green>// идем до позиции где должен стоять элемент Permutation[i] </font>
NewPosition++
Bank[pos].insert( NewPosition , Permutation[i] ) <font color=green>// вставляем элемент в Карман на свою позицию </font>
'''for''' i = Position + 1 to BUCKET-1 <font color=green>// ищем сколько инверсий он создает с элементами в других карманах</font>
'''return''' Answer