Я работаю над проектом для класса, где мне нужно реализовать различные алгоритмы сортировки. Один из них - рандомизированная быстрая сортировка, но мое случайное число всегда устанавливается равным -800 миллионов, даже после установки srand и выбора диапазона чисел, из которого можно выбирать, что вызывает ошибку переполнения стека.
Я перепробовал все, что мог придумать, но это немного. Я попытался создать генератор случайных чисел в другом файле .cpp, и он отлично работает, просто почему-то не работает в этом контексте. Я просто не понимаю, как неправильно генерировать случайное число.
void randomizedQuickSort(int arr3[], int start, int end) {
int temp, pivot;
int s = start, e = end;
srand(time(0)); //<------------------------ ERROR THROWN
// Partitioning
while (s <= e) {
pivot = 0 + (rand() % 5);
while (arr3[s] < pivot)
s++;
while (arr3[e] > pivot)
e--;
if (s <= e) {
temp = arr3[s];
arr3[s] = arr3[e];
arr3[e] = temp;
s++;
e--;
}
// Recursion
if (start < e)
randomizedQuickSort(arr3, start, e);
if (s < end)
randomizedQuickSort(arr3, s, end);
}
}
Я ожидаю, что число будет между 0 и 4, но каждый раз оно генерирует -858,993,460. Вот скриншот ошибки и значений переменных:
![https://i.gyazo.com/47a0becfd5d26ae0a15c08af285c4357.png](https://i.stack.imgur.com/TESSs.png)
(Нажмите на изображение, чтобы увеличить)