Alguém poderia me ajudar com este código de quick sort, ele compila normal… era pra estar ordenando, mas não está. Alguém pra ajudar?

void quickSort(int inicio, int fim){
int esquerda, direita, pivo, meio;
cliente aux;

esquerda = inicio;
direita = fim;

meio = (int)((esquerda + direita) / 2);
pivo = vetor[meio].nome;


while(direita >= esquerda){
    while(vetor[esquerda].nome < pivo){
        esquerda++;
    }
    while(vetor[direita].nome > pivo){
        direita--;
    }
    if(esquerda <= direita){

        aux = vetor[esquerda];
        vetor[esquerda] = vetor[direita];
        vetor[direita] = aux;

        esquerda++;
        direita--;
    }

}
if(inicio < direita){
    quickSort(inicio, direita);
}
if(esquerda < fim){
    quickSort(esquerda, fim);
}

}

Teste de mesa ou debug.

Posta o código onde você utiliza este método.