OPJ2018年算法课第二次作业:F.求逆序对数
总时间限制:
500ms
内存限制:
65536kB
描述
对于一个长度为N的整数序列A,满足i < j 且 Ai > Aj.的数对(i,j)称为整数序列A的一个逆序
请求出整数序列A的所有逆序对个数
输入
输入包含多组测试数据,每组测试数据有两行
第一行为整数N(1 <= N <= 20000),当输入0时结束
第二行为N个整数,表示长为N的整数序列
输出
每组数据对应一行,输出逆序对的个数
样例输入
5 1 2 3 4 5 5 5 4 3 2 1 1 1 0
样例输出
0 10 0
解题思路详解:
主要用到的算法是归并排序的算法,递归。在归并排序的过程中,通过合并两个小段就能统计出逆序对的个数。例如:1,2,3;1,4;合并,程序流程如下:
1. 初始时刻,pos1=0,pos2=0;都指向两个数组的第一个数,定义一个长度为5的数组temp[5],因为两个数组一共5个数。
2. 1=1;pos1++;temp[0]=1;
3. 2>1; pos2++; temp[1]=1; 这个时候选择了第二个数组的第一个数,且第一个数组有剩余值,说明这些剩余值都将与第二个数组 的第一个数是逆序的,找到2个逆序对。
4. 2<4; pos1++;temp[2]=2;
5. 3<4; pos1++;temp[3]=3;
6. 仅有数值4;pos2++;temp[4]=4;
仔细思考这个流程之后,写出就不是什么难事了,注意,题目给了输出格式要求,必须是每一行一个数,因此要空格,本来一次AC,结果格式错误***。
#include <iostream> class Solution2_F { |
OPJ2018年算法课第二次作业:F.求逆序对数相关推荐
- 「数据结构」普林斯顿算法课第二周作业
「数据结构」普林斯顿算法课第二周作业 Algorithm I, Princeton 编程作业: Deques and Randomized Queues 思路 Deque.java Randomize ...
- 「数据结构」普林斯顿算法课第一周作业
「数据结构」普林斯顿算法课第一周作业 Algorithm I, Princeton 编程作业: Percolation 思路 第一部分代码展示 第二部分代码展示 编程作业: Percolation P ...
- Python(分治算法)问题 F: 求逆序对_给定一个序列a1,a2,…,an,如果存在i<j并且ai>aj,那么我们称之为逆序对,求逆序对的数目。
问题 F: 求逆序对 题目描述 给定一个序列a1,a2,-,an,如果存在i<j并且ai>aj,那么我们称之为逆序对,求逆序对的数目. 注意:n<=10^5,ai<=10^5 ...
- 【Web编程实践课第二次作业】体育新闻世界
夢に敗れた幼き人 被梦想打败的幼稚的人 憧れたヒーローには 是无法变成自己 成れやしないんだ 所憧憬的英雄的 現実に叩き起された時 被现实叫醒的时候 理想郷は離れて 理想的桃花源便会离去 崩れ落ちてき ...
- 算法习题---线性表之单链表逆序打印
一:题目 逆序打印单链表中的数据,假设指针指向单链表的开始结点 二:思路 1.可以使用递归方法,来进行数据打印 2.可以借助数组空间,获取长度,逆序打印数组 3.若是可以,对链表数据使用头插法,逆序排 ...
- 《英文科技论文写作与学术报告》网课第二章作业答案
Lecture 2: Making Presentations in English 2.1 Importance and General Advices 2.2 Instructions on Pr ...
- -9 逆序输出一个整数的各位数字_【每日算法】基础算法——归并排序[求逆序对的数量](四)(思想很经典)...
题目内容 给定一个长度为n的整数数列,请你计算数列中的逆序对的数量. 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆 ...
- 归并求逆序对算法图文详解
给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量. 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对:否则不是 ...
- 算法题12 数组中所有的逆序对
题目 求一个数组中所有的逆序对数,如数组arr[]={5,2,4,9,8,6,13,14},逆序对有5,2; 5,4; 9,8; 9,6; 8,6; 逆序对数为5 分析 因为数组不是排序的,所以要找一 ...
最新文章
- java判斷素數,算法改進 | java語言中判斷素數
- python能写软件吗-python代码能做成软件吗
- Eclipse中propedit插件安装(解决property中文问题)
- 【Ubuntu-ROS】ubuntu16.04(18.04)ROS安装配置与卸载
- linux 文件大小_整理 | Linux下列出目录内容命令
- swing中模态对话框(setModal(true))和显示对话框(setVisible(true))的编写顺序
- 【Python】Matplotlib绘制正余弦曲面图
- libevent的vs2013的源码工程 以及两个demo地址
- 在线教育软件开发 教育APP软件开发分析
- 五大主流浏览器及四大内核
- 华东师范大学计算机保研方案,经验分享:华东师范大学的成功保研之路(面试干货)...
- javscript创建Emitter
- mysql求回购率_用户行为分析——回购率、复购率(SQL、Python求解)
- 原神—薄樱初绽时(html+css+js仿原神2.5首页,前端课设)
- eMule电驴服务器常见问题及解答
- Eclipse设置字体和大小
- 俄罗斯自研8核CPU性能实测:能玩几十年前老游戏,下一代「高性能」芯片无人代工...
- ECM:发动机和燃烧系统测试设备
- HDU1495-非常可乐
- 浅谈回车登录的几种方式
热门文章
- c语言微博创建转发和删除源代码,[转]QQ空间、新浪微博、腾讯微博等一键分享API链接代码...
- Unity打字机效果
- 基于Android公交查询系统的设计与实现(论文+程序设计源码+数据库文件)
- Java核心编程总结(三、多态与内部类),java就业班百度网盘
- Lambda 架构:强大的数据工程方法
- php自动生成phpunit,[PHPUnit]自动生成PHPUnit测试骨架脚本
- WIN11 CH340驱动配置
- zzulioj1123
- 计算机和机械课程有关联吗,机械工程及自动化有哪些课程
- 【案例练习】15—27个网页设计的 HTML 时间线