Tenho uma atividade para fazer na qual preciso ordenar 10 elementos de um vetor em quicksort em linguagem C.
Tenho o sguinte codigo abaixo, o prolema é que quando coloco os 10 elementos ele só imprime a parte desordenada, já a parte ordenada não imprime, somente se estiver com 6 elementos ou menos
[code=c]#include
#include
const int tamanho = 10;
char vetor[tamanho] = {'6', '7', '5', '4', '9', '8', '3', '8', '1', '2'};
/*imprimeVetor(){
for(int i = 0; i <= tamanho -1; i++){
printf("%c ", vetor[i]);
}
}*/
quickSort(char vet[], int inicio, int fim){ //aonde inicia e aonde 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]);
}
// imprimeVetor();
quickSort(vetor, 0, tamanho -1);
printf("\n\nVetor depois da ordenação: ");
for(int i = 0; i <= tamanho -1; i++){
printf("\nVetor %d: %c ", i, vetor[i]);
}
/// imprimeVetor();
}[/code]

Erica Olmo B...
Novo Membro
Registrado
5 Mensagens
5 Curtidas
Ordenação QuickSort em linguagem C (iniciante)
#1 Por Erica Olmo B...
03/06/2020 - 11:22