-
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
-
multiplication-table
只是一个课堂上做的九九乘法表,可能很多人做过(Just a class to do multiplication table, many people may have done)
- 2011-10-21 19:43:24下载
- 积分:1
-
bycgste
共轭梯度法(Conjugate Gradient)是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一(Conjugate gradient method (Conjugate Gradient) is between the steepest descent method and Newton' s method between a method that takes only a first derivative information, but to overcome the slow convergence of the steepest descent method shortcomings, but also avoid the need to store Newton and computing the inverse Hesse matrix and disadvantages, conjugate gradient method is not only to solve large linear equations of the most useful methods, large-scale nonlinear optimization solution is the most efficient algorithms)
- 2013-09-13 16:33:21下载
- 积分:1
-
Stress-wave-induced-Fracture
计算动力学研究,应力波引起的裂纹扩展问题,供大家学习(Kinetics calculations, crack propagation problems caused by stress wave for everyone to learn)
- 2013-12-28 22:12:46下载
- 积分:1
-
FTFS
fortran code for LINEAR_WAVE PROPAGATION
by forward time forward spase method.
- 2013-03-26 18:51:52下载
- 积分:1
-
可以实现求解微分方程组的数值解 func
可以实现求解微分方程组的数值解,在func中输入需要计算的微分方程组,运行主函数即可(Can be achieved to solve the numerical solution of differential equations, the input need to calculate the differential equations in the func to run the main function can be)
- 2012-07-02 11:40:59下载
- 积分:1
-
FractalDim
盒维数计算和豪斯多夫维数的计算与应用研究程序(box counting)
- 2013-07-27 17:50:31下载
- 积分:1
-
PQ decomposition method
说明: 进行PQ分解,计算电力系统潮流的有效方法,应用广泛(PQ decomposition is an effective method for calculating power flow in power system.)
- 2019-04-23 21:34:16下载
- 积分:1
-
maze
关于走迷宫算法的实现程序,完全采用C++语言实现,可以运行(Maze algorithm program, fully C++ language, you can run)
- 2012-07-31 22:21:04下载
- 积分:1
-
HFSS-RCS-EXAMPLE
说明: 采用电磁仿真软件HFSS进行雷达散射截面(RCS)计算实例.(Monostatic Radar Cross Section)
- 2011-02-19 18:03:24下载
- 积分:1