码迷,mamicode.com
首页 > 编程语言 > 详细

【归并排序求逆序对】

时间:2017-09-03 17:10:43      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:type   col   for   def   none   分享   span   else   排序   

【AC】

技术分享
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 
 5 const int maxn=1e5+2;
 6 int a[maxn];
 7 int tmp[maxn];
 8 int n;
 9 ll ans;
10 void Merge(int l,int m,int r)
11 {
12     int i=l,j=m+1;
13     int k=l;
14     while(i<=m&&j<=r)
15     {
16         if(a[i]<=a[j])
17         {
18             tmp[k++]=a[i++];
19         }
20         else 
21         {
22             tmp[k++]=a[j++];
23             ans+=(ll)(m-i+1);
24         }
25     }
26     while(i<=m) tmp[k++]=a[i++];
27     while(j<=r) tmp[k++]=a[j++];
28     for(int i=l;i<=r;i++)
29     {
30         a[i]=tmp[i];
31     } 
32 }
33 
34 void Merge_Sort(int l,int r)
35 {
36     if(l<r)
37     {
38         int mid=(l+r)>>1;
39         Merge_Sort(l,mid);
40         Merge_Sort(mid+1,r);
41         Merge(l,mid,r);    
42     }    
43 }
44 int main()
45 {
46     while(~scanf("%d",&n))
47     {
48         for(int i=0;i<n;i++)
49         {
50             scanf("%d",&a[i]);
51         }
52         ans=0;
53         Merge_Sort(0,n-1);
54         printf("%lld\n",ans);
55     }
56     return 0;
57 }
归并排序求逆序对个数

 

【归并排序求逆序对】

标签:type   col   for   def   none   分享   span   else   排序   

原文地址:http://www.cnblogs.com/itcsl/p/7469976.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!