Array50. Дан целочисленный массив $$A$$ размера $$N$$, являющийся перестановкой (определение перестановки дано в задании Array49). Найти количество инверсий в данной перестановке, то есть таких пар элементов $$A_I$$ и $$A_J$$, в которых большее число находится слева от меньшего: $$A_I \gt A_J$$ при $$I \lt J$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
program Array50; var a:array[1..10] of integer; N,i,i2, Num:Integer; check: Boolean; begin Write('N: '); Readln(N); for i:=1 to N do begin write(i,' :'); readln(a[i]); end; Num:=0; for i:=1 to N-1 do for i2:=i+1 to N do if a[i]>a[i2] then inc(Num); Writeln(Num); end. |
Задачи из раздела Array можно посмотреть здесь.
Строка 18 достаточно до N-1
поправил.