Counting Inversion Pairs in an Array
来源:互联网 发布:山西省快乐十分软件 编辑:程序博客网 时间:2024/05/23 13:18
Given an array, for example, 2 4 6 1 3 5, an inversion pair is the pair whose first value is larger than its second value according to the sequence from left to right, (2,1) (4,1) (4,3) (6,1) (6,3) (6,5). The following code is an O(nlog(n)) algorithm based on merge sort to count the inversion pairs in an array.
long long inversionCount(vector<int> &A, int l, int r) {if (l >= r) return 0;int m = (l + r) >> 1;long long res = inversionCount(A, l, m);res += inversionCount(A, m+1, r);vector<int> B(A.begin()+l, A.begin()+r+1);int i = l, j = m + 1, k = l;while (i<=m && j<=r) {if (B[i-l] <= B[j-l]) {A[k++] = B[(i++)-l];} else {A[k++] = B[(j++)-l];res += m - i + 1;}}while (i <= m) A[k++] = B[(i++)-l];while (j <= r) A[k++] = B[(j++)-l];return res;}
2 0
- Counting Inversion Pairs in an Array
- K-diff Pairs in an Array
- leetcode532~K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- K-diff Pairs in an Array
- K-diff Pairs in an Array
- K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- LeetCode K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- LeetCode : K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- atitit js 开发工具 ide的代码结构显示(func list) outline总结
- Hough变换背后的机制
- 2014年5月第二个周末总结--保守自己的心
- OGNL使用详解一:原理与常用语法方式
- 一句话的想法--路由器
- Counting Inversion Pairs in an Array
- android开源项目SmartImageView设置网络图片url时抛出java.io.FileNotFoundException
- atitit.常用编程语言的性能比较 c c++ java
- 急
- 特殊ASCII码查询
- jdk tomcat mysql安装
- 如何让vm虚拟机和主机同时上网
- Atitit .html5刮刮卡的gui实现总结
- 常用二极管,三极管参数