Método Quicksort - Contador de Comparações e Trocas

Alguém sabe se os contadores de comparações e trocas estão posicionados no lugar correto? Muito Obrigado.

   public static void quickSort(int v[], int esquerda, int direita, int numTrocas, int b[], int c) { 
          
        int esq = esquerda;  
        int dir = direita;  
        int pivo = v[(esq + dir) / 2];  
        int troca;
                
        
        while (esq <= dir){
            
            while (v[esq] < pivo) {  
                esq = esq + 1;  
            }
            
            while (v[dir] > pivo) {  
                dir = dir - 1;  
            }
            c++;
            if (esq <= dir) {  
                troca = v[esq];  
                v[esq] = v[dir];  
                v[dir] = troca;  
                esq = esq + 1;  
                dir = dir - 1;
                numTrocas++;
                
            }  
        }
        
        b[1] = numTrocas;
        b[2] = c;
        
        
        if (dir > esquerda){
            quickSort(v, esquerda, dir, numTrocas, b, c);
            }
        
        
        if (esq < direita){
            quickSort(v, esq, direita, numTrocas, b, c);
            }
        
        
    }