归并排序求逆序数

经典分治法实现归并排序求逆序数,算法来自算法导论

归并排序的思想是将整个数组从中点不断的从中间分成两部分,然后进行归并的动作。

在归并过程中,如果左边小于右边,不会产生逆序数,当左边大于右边时,会产生一个逆序数

#include   
  
int left[250003], right[250003];  
long long count;  
  
void merge(int a[], int p, int q, int r)  
{  
    int i, j, k, n1, n2;  
  
    n1 = q-p+1;  
    n2 = r-q;  
    for (i=0; i


你可能感兴趣的:(算法)