数据结构实验之排序五:归并求逆序数
来源:互联网 发布:js页面获取当前时间 编辑:程序博客网 时间:2024/05/18 01:38
Think:
讲区间不断二分,然后进行排序,在MergeSort的过程中不断递归。也就是即先使每个子序列有序,再使子序列段间有序。。。大概就是这样~~~得斯~~
PS:你偷走了我的影子,不论你在哪里,我都会一直想着你
Problem Description
对于数列a1,a2,a3…中的任意两个数ai,aj (i < j),如果ai > aj,那么我们就说这两个数构成了一个逆序对;在一个数列中逆序对的总数称之为逆序数,如数列 1 6 3 7 2 4 9中,(6,4)是一个逆序对,同样还有(3,2),(7,4),(6,2),(6,3)等等,你的任务是对给定的数列求出数列的逆序数。
Input
输入数据N(N <= 100000)表示数列中元素的个数,随后输入N个正整数,数字间以空格间隔。
Output
输出逆序数。
Example Input
10
10 9 8 7 6 5 4 3 2 1
Example Output
45
#include<stdio.h>int a[100050], b[100050];long long int ans;void caifen(int s, int n);void Merge(int s1, int e1, int s2, int e2);int main() { int n, i; ans = 0; scanf("%d",&n); for (i = 0;i <= n - 1;i ++) { scanf("%d",&a[i]); } caifen(0, n - 1); printf("%lld\n",ans); return 0; } void caifen(int s, int n) { int m; if (s < n) { m = (s + n) / 2; caifen(s, m); caifen(m + 1, n); Merge(s, m, m + 1, n); } } void Merge(int s1, int e1, int s2, int e2) { int i, j, k, t; k = 0;i = s1;j = s2; while(i <= e1&&j <= e2) { if (a[i] <= a[j]) b[k ++] = a[i ++]; else { b[k ++] = a[j ++]; ans = ans + e1 - i + 1; } } while(i <= e1) b[k ++] = a[i ++]; while(j <= e2) b[k ++] = a[j ++]; for (t = s1;t <= e2;t ++) a[t] = b[t - s1]; }/***************************************************User name: Result: AcceptedTake time: 48msTake Memory: 888KBSubmit time: 2017-02-23 19:21:52****************************************************/
0 0
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- SDUT3402数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- SDUTACM 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- OJ3402数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- 数据结构实验之排序五:归并求逆序数
- SDUT3402数据结构实验之排序五:归并求逆序数
- Android 6.0权限申请详解及权限资料整理
- 162. Find Peak Element
- csdn自带Markdown教程
- MySQL的主从、主主、被动主主搭建
- filter过滤器利用HttpServletResponseWrapper操作Response对象
- 数据结构实验之排序五:归并求逆序数
- 页面主体高度不固定,如何让页面的footer始终在最底部
- eclipse创建maven
- 16、SQL Server: if else和case
- java 使用javassist 动态修改注解的值
- 实践干货!猿题库 iOS 客户端架构设计
- HDU5992Finding Hotels 【K-D tree】
- 从汇编角度来解析c程序的运行过程
- Android M运行时权限