Работа быстрой сортировки
При помощи учебника пытаюсь самостоятельно реализовать алгоритм быстрой сортировки. Он корректно отрабатывает для массивов с количеством элементов порядка 100, при 200 и больше уже нет. В чём может быть причина такого поведения?
void quick_sort(int* mas, int l_b, int r_b) {
int p = l_b;
int i = l_b + 1;
int j = r_b;
while (i <= j) {
while (mas[p] > mas[i] && i < r_b) {
i++;
}
while (mas[p] < mas[j]) {
j--;
}
if (i < j && j > l_b) {
std::swap(mas[i], mas[j]);
}
else {
std::swap(mas[p], mas[j]);
}
}
if (l_b < j) {
quick_sort(mas, l_b, j - 1);
}
if (r_b > i) {
quick_sort(mas, j + 1, r_b);
}
}
int size = 1000;
int* a = new int[size];
srand(time(NULL));
for (int i = 0; i < size; i++) {
a[i] = rand() % 10000;
}
quick_sort(a, 0, size - 1);