-
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
-
4zeyunsuan
复数的四则运算完整版,包括加减乘除,阶乘,开方等。。。(The plural arithmetic full version,, including addition, subtraction, multiplication, and division factorial, prescribing, etc...)
- 2013-10-11 16:41:48下载
- 积分:1
-
pca
说明: PCA主成分分析的标准MATLAB程序,可通用,非常有效(PCA principal component analysis of the standard MATLAB procedures, can be universal, very effective)
- 2008-10-13 01:48:40下载
- 积分:1
-
Lagrange
三階拉格朗日內差法。使用了Farrow結構,簡化三階多項式係數之運算。(third-order Lagrange interpolation algorithm. use Farrow structure to simplify the coefficients of the polynomial of Lagrange method.)
- 2020-12-14 18:59:13下载
- 积分:1
-
fangxiangyuxian
姿态更新算法之一:方向余弦法,直接求解姿态矩阵微分方程(Attitude updating algorithm: direction cosine method, the direct matrix differential equation solving attitude)
- 2020-10-21 11:17:25下载
- 积分:1
-
python-Machine-learning-master
一个机器学习的python文件,里面拥有各种机器学习方法,可以供大家参考(A Python file for machine learning, which has various machine learning methods, can be used for your reference.)
- 2019-04-17 15:21:41下载
- 积分:1
-
Kriging.Interaption
地统计学中的克里格插值法,Matlab编写,内有详细的说明。(failed to translate)
- 2013-01-14 13:33:35下载
- 积分:1
-
C-C
这个是在进行混沌时间序列分析时的C-C算法的matlab程序,希望对大家的学习会有帮助(This is during the chaotic time series analysis of the CC algorithm matlab program, in the hope that the U.S. would be helpful to learn)
- 2008-05-03 22:22:32下载
- 积分:1
-
smooth
以重力异常为例,对重力异常曲线进行圆滑和求导数。(This is a matlab code.It about smooth and derivative algorithm.)
- 2016-01-05 15:21:56下载
- 积分:1
-
pi_phaseshift_grating
基于matlab的利用传输矩阵法对相移光栅发射谱、时延、色散的数值模拟(phase-shifts of fiber grating)
- 2012-11-26 13:11:57下载
- 积分:1