编辑代码

package cn.liyi.day02;
 
public class Demo788 {
    public static int[] p = {2, 3, 4, 5, 6, 1};
    public static int[] temp = new int[6];
 
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.print(p[i]);
        }
        System.out.println();
        long ans = mergeSort(0, 5);
        System.out.println(ans);
    }
 
    
    public static long mergeSort(int l, int r) {
        if (l == r)
            return 0;
        int mid = (l + r) / 2;
        long ans = mergeSort(l, mid) + mergeSort(mid + 1, r);
        int k = 0, i = l, j = r;
        while (i <= mid && j <= r) {
            if (p[i] <= p[j])
                temp[k++] = p[i++];
            else {
                temp[k++] = p[j++];
                ans += mid - i + 1;
            }
        }
        while (i <= mid)
            temp[k++] = p[i++];
        while (j <= r)
            temp[k++] = p[j++];
        for (i = l, j = 0; i < r; i++, j++) {
            p[i] = temp[j];
        }
        return ans;
    }
 
}