Быстрая сортировка не будет сортировать более 50 элементов

Вот как я генерирую числа для сортировки.

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, время, необходимое для сортировки, увеличивается в геометрической прогрессии. У меня нет идей. Кто-нибудь когда-нибудь имел дело с этим раньше?

0 ответов

Другие вопросы по тегам