int n1=q-p+1;
int n2=r-q;
int L[n1],R[n2];
数组必现用常量,这样是错的,请改为动态数组:
int *L = new int[n1],*R = new int[n2];
函数sort_half里面的int L[n1],R[n2];定义有问题啊,静态数组的话,要求个数需要固定的,n1和n2是变量,所以不对的。可以改成int *L=new int[n1],*R=new int[n2];,最后记得删除即可
而且获得向量大小,直接return v.size();即可,还要循环干嘛
有问题追问