Ошибка при выполнении алгоритма на C++ [закрыто]C++

Программы на C++. Форум разработчиков
Anonymous
Ошибка при выполнении алгоритма на C++ [закрыто]

Сообщение Anonymous »

Мне нужно было организовать по возрастанию массив из 1000 чисел (с повторением). Я хочу использовать Tim-Sort, и как часть этого алгоритма мне нужно использовать функцию слияния:

Код: Выделить всё

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

Вернуться в «C++»