#include <stdio.h>
#include <locale.h>
const int tamanho = 10;
char vetor[tamanho] = {'6', '7', '5', '4', '9', '8', '3', '2', '8', '1'};
imprimeVetor(){
for(int i = 0; i <= tamanho -1; i++){
printf("%c ", vetor[i]);
}
}
quickSort(char vet[], int inicio, int fim){ //onde inicia e onde finaliza o pivot
if(inicio < fim){ //se o meu inicio for menor que o fim
char pivot = vet[inicio]; //determina quem é o pivo
char temp;
int i = inicio;
int f = fim;
while (true){
while(pivot < vet[f]){ //enquanto o pivo for menor que o pivo naposição final
f--;
}
while(pivot > vet[i]){ //enquando meu pivo for maior que inicial
i++;
}
if (i >= f){
break;
}
temp = vet[i];
vet[i] = vet[f];
vet[f] = temp;
}
//a rotina chama ela mesma
quickSort(vet, inicio, f);
quickSort(vet, f +1, fim);
}
}
main(){
setlocale(LC_ALL, "Portuguese");
printf("Vetor antes da ordenação: ");
for(int i = 0; i <= tamanho -1; i++){
printf("\nVetor %d: %c ", i, vetor[i]);
}
quickSort(vetor, 0, tamanho -1);
printf("\n\nVetor depois da ordenação: ");
//imprimeVetor();
for(int i = 0; i <= tamanho -1; i++){
printf("\nVetor %d: %c ", i, vetor[i]);
}
}
Fala galera, tenho um trabalho da faculdade no qual preciso ordenar 10 elementos de um vetor usando o método QuickSort. O problema é que ele imprime desordenado e não ordenado.
Alguém poderia me ajudar informando onde estou errando?