数据结构实验之排序五:归并求逆序数(SDUT 3402)
归并排序详解(戳我)。
以下是搬了别人的。
#include<stdio.h>
#include<stdlib.h>
long long sum = 0;
int a[100005];
int temp[100005];
void Merge(int s1, int e1, int s2, int e2)
{
int p = 0;
int p1 = s1;
int p2 = s2;
while(p1 <= e1 && p2 <= e2)
{
if(a[p1] <= a[p2])
{
temp[p++] = a[p1 ++];
}
else
{
temp[p ++] = a[p2 ++];
sum += (e1 - p1 + 1);
}
}
while(p1 <= e1)
{
temp[p++] = a[p1++];
}
while(p2 <= e2)
{
temp[p++] = a[p2++];
}
for(int i = s1; i <= e2; i ++)
{
a[i] = temp[i - s1];
}
}
void Merge_sort(int s, int e)
{
int m;
if(s < e)
{
m = ( s + e ) / 2;
Merge_sort(s, m);
Merge_sort(m + 1, e);
Merge(s, m , m + 1, e);
}
}
int main()
{
int n;
while(scanf("%d", &n) != EOF)
{
for(int i = 0; i < n; i ++)
{
scanf("%d",&a[i]);
}
sum = 0;
Merge_sort(0,n-1);
printf("%lld\n",sum);
}
return 0;
}
数据结构实验之排序五:归并求逆序数(SDUT 3402)的更多相关文章
- SDUT 3402 数据结构实验之排序五:归并求逆序数
数据结构实验之排序五:归并求逆序数 Time Limit: 40MS Memory Limit: 65536KB Submit Statistic Problem Description 对于数列a1 ...
- SDUT-3402_数据结构实验之排序五:归并求逆序数
数据结构实验之排序五:归并求逆序数 Time Limit: 50 ms Memory Limit: 65536 KiB Problem Description 对于数列a1,a2,a3-中的任意两个数 ...
- 2014多校第五场1001 || HDU 4911 Inversion (归并求逆序数)
题目链接 题意 : 给你一个数列,可以随意交换两相邻元素,交换次数不超过k次,让你找出i < j 且ai > aj的(i,j)的对数最小是多少对. 思路 : 一开始想的很多,各种都想了,后 ...
- 51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)
1107 斜率小于0的连线数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线 ...
- 归并求逆序数(逆序对数) && 线段树求逆序数
Brainman Time Limit: 1000 MS Memory Limit: 30000 KB 64-bit integer IO format: %I64d , %I64u Java c ...
- 315. Count of Smaller Numbers After Self(二分或者算法导论中的归并求逆序数对)
You are given an integer array nums and you have to return a new counts array. The counts array has ...
- 数据结构实验之排序四:寻找大富翁(SDUT 3401)
#include <stdio.h> #include <stdlib.h> #include <string.h> void Swap(int a[], int ...
- 数据结构实验之排序七:选课名单 (SDUT 3404)
#include <stdio.h> #include <string.h> #include <stdlib.h> struct node { char data ...
- 数据结构实验之二叉树五:层序遍历 (SDUT 3344)
#include <bits/stdc++.h> using namespace std; struct node { char data; struct node *lc, *rc; } ...
随机推荐
- shell-基础2-字符串文本处理${}
一.为什么使用${}引用变量 1.$a和${a}的效果与区别 因为个别特殊字符会影响正常引用,所以需要使用${}引用变量,加花括号是为了帮助解释器识别变量的边界 $a和${a}效果一样,当变量后面连接 ...
- NIO(3)--Selector
Selector是NIO中的可选择Channel(SelectableChannel)的multiplexor.有两个拗口的概念,首先是SelectableChannel,在NIO里并非所有的Chan ...
- C++线程同步之事件
题目要求:点击抢红包后,先将第一个编辑框的值设置为1000,然后创建三个线程,让右边的编辑框值依次设置为1000(用事件完成) // MutexExDlg.h : 头文件 // #pragma onc ...
- [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
来源:http://bbs.9ria.com/thread-102037-1-1.html 最近看到本版块的很多关于NativeExtension的应用.但是都是在Android下面的应用.也有很多朋 ...
- vue入门模板——只需一个html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Ubuntu 18.04 使用apt-get 华为源支持 arm64 鲲鹏处理器
网上搜的源,什么阿里云163等等的,都不支持arm64 执行以下代码,使用华为源 wget -O /etc/apt/sources.list https://repo.huaweicloud.com/ ...
- xtarbackup 简单恢复
xtrbackup Xtrabackup安装 #下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/ep ...
- jQuery和bootstrap
1. jQuery学习,搜索开发者网络: js学习: https://www.apeland.con/web/20/568 https://www.apeland.con/web/21 vue饿了么 ...
- cmd xcopy进行远程复制
首先 win+R 打开cmd 1 目标远程服务器 查看共享的文件夹 net share 2 与远程建立连接 net use \\192.168.3.200\ipc$ Yhxwl123456 /us ...
- Spring boot集成Websocket,前端监听心跳实现
第一:引入jar 由于项目是springboot的项目所以我这边简单的应用了springboot自带的socket jar <dependency> <groupId>org. ...