Визначення
Для масиву N невід'ємних цілих чисел [1 .. N], якщо я <j, і [i]> [J], називається ([I], [J]) масиву у зворотному пари.
Наприклад, масив (3,1,4,5,2) на реверсі (3,1), (3,2), (4,2), (5,2), в цілому чотири.
Кількість вирішення завдання на зворотний
Опис проблеми
Дано масив, знайти масив містить кількість зворотному порядку.
Методи рішенняСпосіб перший: найпримітивніший метод, використовуючи подвійне перерахування петлі. Тимчасова складність алгоритму O (N ^ 2).
C код виглядає наступним чином:
десяткового count_inversion (INT *, Int N)
{
соіпЬ = 0;
INT I, J;
для (я = 0; I <N, я )
для (J = I 1, J <N; J )
Якщо ([I]> [J])
Count ;
повернутися розраховувати;
}
Паскаль код виглядає наступним чином:
Var I, J, K, N: LONGINT;
: Array [1 .. 1000000] з LONGINT;
починати
ReadLn (N);
для I: = 1 до N читаю ([I]);
K: = 0;
для I: = 1 до N-1 робити
для J: = I 1 до N робити
Якщо [я]> [J], потім вкл (К);
WriteLn (к);
|