提交时间:2023-09-13 14:02:09

运行 ID: 102533

void msort(int s,int t) { if(s= =t) return; int mid=(s+t)/2; msort(s,mid); msort(mid+1,t); int i=s,j=mid+1,k=s; while(i<=mid && j<=t) { if(a[i]<=a[j]) { r[k]=a[i];k++;i++; }else{ r[k]=a[i];k++;i++; ans+=mid-i+1; } } while(i<=mid) { r[k]=a[i];k++;i++; } while(j<=t) { r[k]=a[i];k++;i++; } } for(int i=s;i<=t;i++) a[i]=r[i]; }