Ir ao conteúdo
  • Cadastre-se

Quicksort


Bruxo2

Posts recomendados

To tentando fazer um quicksort aqui, mas por algum motivo ele não ordena, transcrevi o código de português estruturado por C, tentei várias modificações, depurei com printf, e nada =/

Se alguém puder me ajudar, segue o código:

int partition(int A[],int p,int r){
int j,x,aux,i;

x = A[r];
i = p;
for(j=p; j < r-1; ++j){
if(A[j] < x){
i++;
aux = A[i];
A[i] = A[j];
A[j] = aux;
}
}
aux = A[i+1];
A[i+1] = A[r];
A[r] = aux;
return i;


}

void quicksort(int A[],int p,int r){
int q;
if(p<r){

q = partition(A,p,r);
quicksort(A,p,q-1);
quicksort(A, q+1, r);
}

}

quicksort(vet1,0,TAMANHO);

Alguns testes:

Vetor desordenado: 
0 - 801047
1 - 749537
2 - 875235
3 - 445025
4 - 40885

Vetor ordenado com quick sort:
0 - 875235
1 - 801047
2 - 40885
3 - 445025
4 - 749537

Vetor desordenado: 
0 - 547342
1 - 31663
2 - 807533
3 - 898793
4 - 458703

Vetor ordenado com quick sort:
0 - 458703
1 - 31663
2 - 458703
3 - 898793
4 - 807533

Vetor desordenado: 
0 - 882433
1 - 478206
2 - 71064
3 - 481412
4 - 45963

Vetor ordenado com quick sort:
0 - 71064
1 - 882433
2 - 45963
3 - 481412
4 - 478206

Compila tudo direitinho, mas não funciona de jeito nenhum =/

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

APRENDA TUDO SOBRE HARDWARE!

HARDWARE 2022

 

CLIQUE AQUI E BAIXE AGORA MESMO!