Прежде всего, чтобы получить абсолютно случайное число с помощью rand (), вам нужно запустить генератор чисел.Для этого вы включаете библиотеку «time.h», а затем пишете: srand (time(NULL));
Во-вторых, ваша быстрая сортировка принимает два параметра: вектор с именем Vec и int f, который ни для чего не используется.Возьмем int f параметров функции.
В-третьих, проблема в том, что в этой части кода происходит бесконечный цикл (строки с 17 по 23):
for(unsigned int i = 0; i < Vec.size(); i++){
if(Vec[i] >= pivot)
v2.push_back(Vec[i]);
else
v1.push_back(Vec[i]);
}
Представьте, что нашВектор Vec равен {2, 3} (это были фактические значения, потому что мы не запустили генерацию случайных чисел).
То, что происходит, это то, что у нас есть pivot = 2, а затем мы говорим, чтоесли Vec [0], равное 2, больше или равно оси вращения, мы добавляем Vec [0] к v2, а затем то же самое для Vec [1], равным 3. Тогда это происходит бесконечно, потому что тогда вы говоритеv2 = quicksort(v2);
.Это сделает Vec = v2.А это значит, что он никогда не станет меньше, потому что, опять же, Vec равен {2, 3}, и, следовательно, наш пивот = 2.