Быстрая сортировка по возрастанию c++

У меня есть быстрая сортировка по убыванию , какой будет быстрая сортировка по возрастанию из этого кода ? ( перепробовал все , не получается ).

void quickSort1(T* array, long N)
{

    long i = 0, j = N - 1;
    T temp, p;

    p = array[N >> 1];


    do {
        while (array[i] < p) i++;
        while (array[j] > p) j--;

        if (i <= j) {
            temp = array[i]; array[i] = array[j]; array[j] = temp;
            i++; j--;
        }
    } while (i <= j);



    if (j > 0) quickSort1(array, j);
    if (N > i) quickSort1(array + i, N - i);
}

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

Автор решения: Harry

Начнем с исправления вашего алгоритма. Это несложно:

if (j > 0) quickSort1(array, j+1);

Подумайте-ка, почему +1, о чем вы забыли?

После этого получить обратную сортировку совсем легко:

while (array[i] > p) i++;
while (array[j] < p) j--;

Пример работы см. тут.

→ Ссылка