-
11087 统计逆序对
Description
设a[0…n-1]是一个包含n个数的数组,若在i<j的情况下,有a[i]>a[j],则称(i, j)为a数组的一个逆序对(inversion)。
比如 <2,3,8,6,1> 有5个逆序对。请采用类似“合并排序算法”的分治思路以O(nlogn)的效率来实现逆序对的统计。
一个n个元素序列的逆序对个数由三部分构成:
(1)它的左半部分逆序对的个数,(2)加上右半部分逆序对的个数,(3)再加上左半部分元素大于右半部分元素的数量。
其中前两部分(1)和(2)由递归来实现。要保证算法最后效率O(nlogn),第三部分(3)应该如何实现?
此题请勿采用O(n^2)的简单枚举算法来实现。
并思考如下问题:
(1)怎样的数组含有最多的逆序对?最多的又是多少个呢?
(2)插入排序的运行时间和数组中逆序对的个数有关系吗?什么关系?
输入格式
第一行:n,表示接下来要输入n个元素,n不超过10000。
第二行:n个元素序列。
输出格式
逆序对的个数。
输入样例
5
2 3 8 6 1
输出样例
5(Set a[0... N-1] is a n array containing n numbers. If there is a [i] > a [j] i n the case of I < j, then (i, j) is a n inversion pair of a array.
For example, <2,3,8,6,1> has five reverse pairs. Please use the idea of "merge sorting algorithm" to achieve the statistics of inverse pairs with O (nlogn) efficiency.
The number of inverse pairs of a sequence of n elements consists of three parts:
(1) The number of reverse pairs in the left half, (2) the number of reverse pairs in the right half, (3) the number of elements in the left half is greater than that in the right half.
The first two parts (1) and (2) are implemented by recursion. To ensure the final efficiency of the algorithm O (nlogn), how should the third part (3) be implemented?
Do not use O (n ^ 2) simple enumeration algorithm to solve this problem.)
- 2019-01-07 23:52:06下载
- 积分:1
-
UDF_03_Files
用C语言编写的Fluent UDF实例,包含Adjust宏,profile宏等八个实例教程,快速上手(The UDF is for computational fluid dynamics software Fluent, it concludes the Profile.c,the Adjust.c)
- 2019-05-11 00:02:23下载
- 积分:1
-
FTFS
fortran code for LINEAR_WAVE PROPAGATION
by forward time forward spase method.
- 2013-03-26 18:51:52下载
- 积分:1
-
fft
一个短时傅里叶变换的C语言实现,对3万个数据进行加窗、FFT处理(A short time Fourier transform of C language, for 30,000 data windowing, FFT processing)
- 2020-08-15 18:58:26下载
- 积分:1
-
BEM-contact
一个用于弹性接触分析的边界元fortran源程序(One for the analysis of elastic contact BEM fortran source)
- 2020-12-05 17:59:25下载
- 积分:1
-
qiyizhi
奇异值能量差分谱计算,可用于信号降噪处理(Singular value of the energy difference spectrum calculation can be used for signal noise reduction)
- 2021-03-21 14:29:16下载
- 积分:1
-
digitalfiltercode
圆周卷积滤波器,可清晰见到实际滤波器的算法(Circular convolution filter, can clearly see that the actual filter algorithm)
- 2007-12-10 09:14:25下载
- 积分:1
-
umat-DP
用于计算abaqus中土的状态。是子程序。(The state used to calculate the abaqus Turkey. Is the subroutine.)
- 2012-06-16 10:54:03下载
- 积分:1
-
OpenSees1.0
经典的可编程添加模块的面向对象的有限元程序代码(C++ code for OOFEM based on multi-systems)
- 2018-05-02 19:45:18下载
- 积分:1
-
quasi-newton
一个用拟牛顿算法求解优化问题的程序,此程序为MATLAB程序,大家用前自己注意检查一下(A Quasi-Newton algorithm using optimization procedures, the procedures for the MATLAB program, we pay attention to before their own check)
- 2008-12-24 10:50:28下载
- 积分:1