1.归并排序拓展 — 最小和问题
算法实现:
public static int megreSort(int[] arr){
if(arr==null || arr.length<2)
return 0;
return sortProcess(arr,0,arr.length-1);
}
//分解
public static int sortProcess(int[] arr,int l,int r){
if(l==r){
return 0;
}
int mid=(l+r)/2;
//左边产生的小和加右边产生的小和,再加合并时产生的小和
return sortProcess(arr,l,mid)
+sortProcess(arr,mid+1,r)
+merge(arr,l,mid,r);
}
//合并
public static int merge(int[] arr,int l,int m,int r){
int res=0;
int[] help = new int[r-l+1];
int p1=l;
int p2=m+1;
int i=0;
whi