Код: Выделить всё
void merge(int *A, int l, int m, int r){
int length1 = m - l + 1;
int length2 = r - m;
double* left = new double[length1];
double* right = new double[length2];
for(int i = 0; i < length1; i++){
left[i] = A[l + i];
}
for(int i = 0; i < length2; i++){
right[i] = A[m + 1 + i];
}
}

Я не поставил всю функцию слияния но я не думаю, что остальное имеет значение, ошибка - это «неверная новая длина массива», она говорит, что длина массива отрицательна с какого-то сайта, на котором я пытался выполнить поиск, я не знаю, читал ли я правильная вещь.
Подробнее здесь: https://stackoverflow.com/questions/790 ... rithm-in-c
Мобильная версия