Enviado em 23/08/2016 - 19:50h
Olá, estou tendo um problema aqui com meu código, onde já tentei de tudo, mas o vetor não é ordenado de forma decrescente, através do QuickSort, se alguém puder dar uma dica agradeço desde já.void quick_crescente(int *pt, int inicio, int fim) {
int pivo, aux, i, j, meio;
//Prepara as variaveis para a ordenação
i = inicio;
j = fim;
meio = (int)((i + j) / 2);
pivo = pt[meio];
do {
//Verifica se o inicio e o fim já chegaram no meio para poder terminarem
while (pt[i] < pivo)
i = i + 1;
while (pt[j] > pivo)
j = j - 1;
//Troca as posições dos numeros do vetor, caso necessario | aux = Variavel auxiliar para guardar o vetor por um instante
if (i <= j) {
aux = pt[i];
pt[i] = pt[j];
pt[j] = aux;
i = i + 1;
j = j - 1;
printf("[%d][%d] ", pt[i], pt[j]);
}
//Condição de existencia, quando J e I forem iguais ou j < i o algoritmo pula fora
} while (j > i);
if (inicio < j)
quick_crescente(pt, inicio, j);
if (i < fim)
quick_crescente(pt, i, fim);
}