Алгоритм быстрой сортировки java script

Здравствуйте,есть алгоритм быстрой сортировки. Не иогли бы мне помочь,как сделать так чтобы алгоритм не захватывал опорный элемент при каждом сортировке подмассивов.То есть должен быть массив из 15 ключей [95 17 87 26 75 30 35 36 51 74 29 77 25 89 16] выбирается опорный элемент 36,дальше сортируется правая часть это [95 17 87 26 75 30 35] ,затем левая . Так вот при сортировке он почему то всегда захватывает опрный элемент тоже.Должно быть именно 15 ключей.

function swap(items, firstIndex, secondIndex){
    var temp = items[firstIndex];
    items[firstIndex] = items[secondIndex];
    items[secondIndex] = temp;
}

function partition(items, left, right) {

    var pivot   = items[Math.floor((right + left) / 2)],
        i       = left,
        j       = right;


    while (i <= j) {

        while (items[i] < pivot) {
            i++;
        }

        while (items[j] > pivot) {
            j--;
        }

        if (i <= j) {
            swap(items, i, j);
            i++;
            j--;
        }
    }

    return i;
}
function quickSort(items, left, right) {

    var index;

    if (items.length > 1) {

        index = partition(items, left, right);

        if (left < index - 1) {
            quickSort(items, left, index - 1);
        }

        if (index < right) {
            quickSort(items, index, right);
        }

    }

    return items;
}


// first call
var result = quickSort(items, 0, items.length - 1);

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