Definició
Per a un conjunt N dels nombres enters no negatius A [1 .. n], si em <j, i A [i]> A [j], anomenat (A [i], A [j]) la matriu A en un parell invers.
Per exemple, la matriu (3,1,4,5,2) al revers no és (3,1), (3,2), (4,2), (5,2), un total de quatre.
Nombre de resoldre el problema en el revers
Descripció del problema
Donada una matriu, trobar la matriu conté el nombre de la dreta inversa.
Mètodes de resolucióPrimer mètode: el mètode més primitiu, amb enumeració de doble bucle. La complexitat de temps de l'algorisme és O (n ^ 2).
Codi C és el següent:
count_inversion int (int * a, int N)
{
int count = 0;
int i, j;
for (i = 0; i <N, i )
for (j = i 1, j <N; j )
if (a [i]> a [j])
compte ;
tornar explicar;
}
Codi Pascal és el següent:
var i, j, k, n: enter llarg;
a: array [1 .. 1000000] de enter llarg;
començar
readln (n);
per i: = 1 fins n Com llegir (a [i]);
k: = 0;
per i: = 1 fins a n-1 fer
per j: = i 1 fins n fer
si a [i]> A [j] a continuació, inc (k);
writeln (k);
|