剑指offer面试题36:数组中的逆序对
来源:互联网 发布:网络电话卡怎么办理 编辑:程序博客网 时间:2024/05/14 10:07
#include "iostream"using namespace std;int InversePairsCore(int* data,int* copy,int start,int end){if (start==end){copy[start] = data[start];return 0;}int length = (end - start) / 2;int left = InversePairsCore(copy, data, start, start + length);int right = InversePairsCore(copy, data, start + length + 1, end);int i = start + length;int j = end;int indexCopy = end;int count = 0;while (i>=start&&j>=start+length+1){if (data[i]>data[j]){copy[indexCopy--] = data[i--];count += j - start - length;}else{copy[indexCopy--] = data[j--];}}for (; i >= start; --i)copy[indexCopy--] = data[i];for (; j >=start + length + 1; --j)copy[indexCopy--] = data[j];return left + right + count;}int InversePairs(int* data, int length){if (data == NULL || length < 0)return 0;int *copy = new int[length];for (int i = 0; i < length; i++)copy[i] = data[i];int count = InversePairsCore(data, copy, 0, length - 1);delete[] copy;return count;}int main(){int a[] = { 7, 5, 6, 4 };cout << InversePairs(a, 4);system("pause");return 0;}
0 0
- 剑指offer面试题36:数组中的逆序对
- [剑指offer][面试题36]数组中的逆序对
- 【剑指offer】面试题36:数组中的逆序对
- 剑指Offer:面试题36 数组中的逆序对
- 剑指offer 面试题36:数组中的逆序对
- 剑指offer 面试题36—数组中的逆序对
- 【剑指Offer学习】【面试题36:数组中的逆序对】
- 剑指offer-面试题36:数组中的逆序对
- 剑指offer之面试题36数组中的逆序对
- 剑指offer面试题36-数组中的逆序对
- 剑指offer面试题36:数组中的逆序对
- 剑指Offer----面试题36:数组中的逆序对
- 剑指Offer面试题36:数组中的逆序对
- 剑指offer--面试题36:数组中的逆序对
- 剑指Offer之面试题36:数组中的逆序对
- 剑指Offer---面试题36:数组中的逆序对
- 【剑指offer】面试题36-数组中的逆序对
- 剑指offer-面试题36-数组中的逆序对
- Mybatis 面向接口编程
- 【Android】神奇的android:clipChildren属性
- SublimeCodeIntel for PHP
- div自动适应浏览器窗口水平和垂直居中
- Object转json ,xml
- 剑指offer面试题36:数组中的逆序对
- 设计模式概览
- 使用函数实现两个数的交换;
- 【Android】基础知识(一) --Android Studio使用技巧(4)
- 68.You are managing an Oracle Database 11g database. You want to ensure the recovery of the database
- 函数以及面向对象的思想
- UVA 10870 Recurrences
- MYSQ学习
- 代码大全_第七部分: 软件工艺