быстрая сортировка на С++
пытаюсь реализовать быструю сортировку на "плюсах" с подсчетом времени, но что-то не сортирует, а в произвольном порядке выкидывает числа... '''
#include <iostream>
#include <time.h>
using namespace std;
void QuickSort(int* a, int n)
{
int x, w, i, j;
x = a[n / 2];
i = 0; j = n - 1;
do
{
while (a[i] < x) i++;
while (x < a[j]) j--;
if (i <= j)
{
w = a[i]; a[i] = a[j]; a[j] = w;
i++; j--;
}
} while (i < j);
if (j > 0)
QuickSort(a, j + 1);
if (i < n - 1)
QuickSort(a + i, n - i);
}
clock_t start;
float timing;
int main()
{
setlocale(0, "");
int size;
cout << "Введите количество элементов массива: ";
cin >> size;
srand(time(NULL));
int* a = new int[size];
for (int i = 0; i < size; i++)
{
a[i] = rand();
}
start = clock();
cout << "Отсортированный массив: ";
for (int i = 0; i < size; i++)
{
cout << a[i] << " ";
}
cout << endl;
timing = (float)(clock() - start) / CLOCKS_PER_SEC;
cout << "Время сортировки массива = " << timing;
cout << endl;
system("pause");
return 0;
}
'''