Pular para o conteúdo

Contagem de comparações e atribuições em quick sort [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Contagem de comparações e atribuições em quick sort [RESOLVIDO]

Enviado em 02/11/2020 - 00:29h

Boa noite a todos, estou estudando um algoritmo de quick sort para ordenar um vetor, porem quem adicionar no código dois contadores para contar quantas comparações e atribuições são feitas durante o método, contudo, não estou conseguindo saber ao certo onde devo colocar. Segue o código:

/* Função de partição do vetor para o quick sort */
int particao(int *v, int ini, int fim) {

int aux;
int pivo = v[ini];
int i = ini + 1;
int j = fim;

while (i <= j)
{
while ((i <= j) && v[i] <= pivo) {
i++; //tentei atribuição aqui e não funcionou
}

while(v[j] > pivo) {
j--; //tentei atribuição aqui e não funcionou
}

if (i < j)
{
aux = v[i];
v[i] = v[j];
v[j] = aux; //tentei atribuição aqui e não funcionou
}
}

aux = v[ini];
v[ini] = v[j];
v[j] = aux;
//tentei atribuição aqui e não funcionou
return j;
}

/* Auxiliar para a ordenação por QUICK SORT */
void quick_sortR(int *v, int ini, int fim) {

int j;

if (ini < fim)
{ //tentei atribuição aqui e não funcionou
j = particao(v, ini, fim);
if(ini < (j -1))
//tentei comparação aqui e não funcionou
quick_sortR(v, ini, fim);

if((j+1) < fim)
//tentei comparação aqui e não funcionou
quick_sortR(v, j + 1, fim);

}
}

/* Ordenação por QUICK SORT */
void quick_sort(int *v, int tam) {

quick_sortR(v, 0, tam -1);

}
Qualquer ajuda é bem vinda, desde já agradeço a todos.

Responder tópico

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder