欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【模板】归并排序求逆序对

程序员文章站 2022-05-10 11:51:35
...
void merge(int l,int mid,int r)
{
	//合并a[l~mid]与a[mid+1,r]
	//a是待排序数组,b是临时数组,cnt是逆序对个数
	int i=l,j=mid+1;
	for(int k=l;k<=r;k++)
	    if(j>r||i<=mid&&a[i]<a[j])b[k]=a[i++];
	    else b[k]=a[j++],cnt+=mid-i+1;
	for(int k=l;k<=r;k++)a[k]=b[k];
}