归并排序求逆序对
来源:互联网 发布:php倒计时 编辑:程序博客网 时间:2024/05/24 05:47
关键是cnt+=m-p
其余和归并排序一模一样。
#include<cstdio>
#include<iostream>#include<cstring>
using namespace std;
int a[111111],t[111111],n,cnt;
void merge(int *A,int x,int y,int *T)
{
if (y-x>1)
{
int m=x+(y-x)/2;
int p=x,q=m,i=x;
merge(A,x,m,T);
merge(A,m,y,T);
while (p<m||q<y)
{
if (q>=y||(p<m&&A[p]<=A[q])) T[i++]=A[p++];
else T[i++]=A[q++],cnt+=m-p;
}
for (int i=x;i<y;i++) A[i]=T[i];
}
}
int main()
{
scanf("%d",&n);cnt=0;
memset(a,0,sizeof(a));
memset(t,0,sizeof(t));
for (int i=1;i<=n;i++) scanf("%d",&a[i]);
merge(a,1,n+1,t);
for (int i=1;i<=n;i++) printf("%d ",a[i]);
printf("%d",cnt);
}
0 0
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对~~~
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- 归并排序求逆序对
- MyEclipse spring + struts2 + hibernate环境搭建 windows下
- RenderScript----Android图片模糊效果的简单实现
- 蛇形矩阵生成及索引
- ACM 算法模板
- Java加锁机制
- 归并排序求逆序对
- 深圳天地宽视信息科技有限公司上海分公司笔试题
- 909422229__JDBC数据库连接
- Eclipse 常用快捷键
- ImageView.ScaleType设置图解
- ACM题集以及各种总结大全!
- MFC界面库
- HDU 1312Red and Black
- 【poj 1949】Chores