这个算法与归并排序相似
int cnt = 0;//对数个数,
void re(int *b,int x,int y,int *t){
if(y-x>1){//递归退出条件
int m = x+(y-x)/2;
int p = x,q=m,i=x;
re(b,x,m,t);
re(b,m,y,t);
while(p<m||q<y){
if(q>=y||(p<m&&b[p]<=b[q])) t[i++] = b[p++];
else{ t[i++] = b[q++];cnt+=m-p;}//归并排序修改这里就可以了
}
for(i=x;i<y;i++) b[i] = t[i];
}
}