C++排序,代码中有错误,但找不出

2025-03-03 08:39:19
推荐回答(2个)
回答1:

int n1=q-p+1;

    int n2=r-q;

    int L[n1],R[n2];

数组必现用常量,这样是错的,请改为动态数组:

int *L = new int[n1],*R = new int[n2];

回答2:

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