Ne, tva umira, no leko modificirano mai stava:

 if (input[i] < pivot) i++;
            if (input[j] > pivot) j--;
            if (i<=j) {
                swap(input, i, j);
                i++;
                j--;
}

tva e shtoto zaradi rekursiqta trqbva strogo da im se smenqt mestata na i and j. A zashto if e po-dobre ot while?