Ошибка при выполнении алгоритма на 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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