Вот как я генерирую числа для сортировки.
vector<int> list;
for (i=0;i<50;i++) list.push_back(rand() %1000);
Вот мой звонок в основном
quickSort(list , 0, (list.size() -1 ));
вот функция быстрой сортировки
int pivot = left;
int temp = right;
if(left > right - 1)
return;
while (left != right) {
if (pivot == left){
if (list[pivot] > list[right]) {
//-------------------------
std:swap(list, right, pivot);
//-------------------------
pivot = right;
left++;
}else{
right--;
}
}else{
if (list[pivot] < list[left]) {
//-------------------------
swap(list, left, pivot);
//-------------------------
pivot = left;
right--;
}else{
left++;
}
}
}
quickSort(list, 0, right -1);
quickSort(list, right + 1, temp);
По мере того, как количество сортируемых элементов приближается к 50, время, необходимое для сортировки, увеличивается в геометрической прогрессии. У меня нет идей. Кто-нибудь когда-нибудь имел дело с этим раньше?
Задача ещё не решена.