void merge_cormen(vector<int> &A, int p, int q, int r) {
int n1 = q-p+1;
int n2 = r-q;
vector<int> L;
vector<int> R;
for(int i=0; i<n1; i++) L.push_back(A[p+i]);
for(int j=0; j<n2; j++) R.push_back(A[q+j+1]);
L.push_back(numeric_limits<int>::max());
R.push_back(numeric_limits<int>::max());
int i = 0;
int j = 0;
for(int k=p; k<=r; k++){
if(L[i] <= R[j]){
A[k] = L[i];
i++;
}
else{
A[k] = R[j];
j++;
}
}
}
void merge1(vector<int> &A, int p, int q){
if(p < q){
int r = (p+q)/2;
merge1(A, p, r);
merge1(A, r+1, q);
merge_cormen(A, p, q, r);
}
}
Salve a tutti, avrei bisogno di un'occhiata al codice. Sto implementando il MergeSort con i vector, il codice funziona, ma non ordina gli elementi. Potreste aiutarmi a capire dov'è l'errore?