Почему не работает быстрая сортировка в JS

Вот код быстрой сортировки, в чем ошибка, что он не работает?

function swap(a, b) {
    return [b,a];
}

function partition(array, l, r) {
    let pivot = array[(l + r) / 2];
    let i = l;
    let j = r;

    while (i <= j) {
        while (array[i] < pivot)
            i++;
        while (array[j] > pivot)
            j++;
        if(i >= j)
            return j;
        [array[i], array[j]] = swap([array[i]], array[j]);
    }
}

function qsort(arr, left, right) {
    if (left < right) {
        let q = partition(arr, left, right)
        qsort(arr, left, q);
        qsort(arr, q + 1, right);
    }
}

let array = [5,3,2,1,6,7];
qsort(array, 0, array.length - 1)

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