Description
先给出逆序对的定义,对于一个给定的数列{An},如果有iAj,则称(i,j)为一逆序对.
求给出一个数列,求出这个数列包含多少个逆序对?
Input
n (<=10000)
n个数
Output
输出逆序对数?
Sample Input
Sample Output
5
3 4 2 1 3
程序如下:
-
var a:array[1..10000]of longint; i,j,n,ans,t:longint; begin read(n); for i:=1 to n do read(a[i]); for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then inc(ans); write(ans); end.
这一种方法可以实现不是太大的数据,太大的数据可能会超时!!!