数组中

来源:互联网 发布:淘宝没有购物车营销 编辑:程序博客网 时间:2024/06/02 08:36
public class Solution {    long count=0;    public int InversePairs(int [] array) {int length = array.length;        if(length<=1) return 0;        merge_sort(array, 0, length-1);        return (int)(count%1000000007l);    }         public  void merge_sort(int[] array,int left,int right){        if(left<right){            int mid = (left+right)>>1;            merge_sort(array, left, mid);            merge_sort(array, mid+1, right);            merge(array, left, mid, right);        }    }         public  void merge(int[] array,int left,int mid,int right){        int i = left,j=mid+1,k=0;        int[] temp = new int[right-left+1];        while(i<=mid&&j<=right){            if(array[i]>array[j]){                count+=mid-i+1;                temp[k++] = array[j++]; //k++是为了保证从0开始,不要和++k混淆            }else{                temp[k++]=array[i++];            }        }            while(i<=mid) temp[k++]=array[i++];            while(j<=right) temp[k++]=array[j++];            for(i=0;i<k;i++) array[left+i]=temp[i];             }}

0 0
原创粉丝点击