быстрая сортировка на С++

пытаюсь реализовать быструю сортировку на "плюсах" с подсчетом времени, но что-то не сортирует, а в произвольном порядке выкидывает числа... '''

#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;
}

'''


Ответы (0 шт):