quicksort
Olá pessoal, estou no 3 período de ciência da computação, fiz esse cod de ordenação quicksort, ele precisa esta implementado de maneira recursiva com uso de TAD's, o problema que esta dando tela preta quando copilado... nao sei o erro me ajuda, pfvr.
#include<stdio.h>
#define TAM 5
int particao(int *v , int esq, int dir){
int aux;
int part= v[(dir+esq)/2];
while(esq<=dir){
while(v[esq]<v[part] && esq <dir){
esq++;
}
while(v [dir] >v[part] && dir<esq){
dir--;}
if(dir<=esq){
aux = esq;
esq = dir;
dir = aux;
esq++;
dir--;
}
}
}
void qksort(int *v, int esq,int dir){
int part;
part= particao(v,esq,dir);
if(dir<part){
return qksort(v,esq,part+1);}
if(esq<=part){
return qksort(v,part-1,dir);
}
}
int main(){
int vet[TAM]={2,7,5,3,6};
int i;
qksort(vet,0,TAM-1);
printf(" \n Valores ordenados \n");
for(i = 0; i < TAM; i++)
{
printf("%d\n", vet[i]);
}
system("pause");
return 0;
}
#include<stdio.h>
#define TAM 5
int particao(int *v , int esq, int dir){
int aux;
int part= v[(dir+esq)/2];
while(esq<=dir){
while(v[esq]<v[part] && esq <dir){
esq++;
}
while(v [dir] >v[part] && dir<esq){
dir--;}
if(dir<=esq){
aux = esq;
esq = dir;
dir = aux;
esq++;
dir--;
}
}
}
void qksort(int *v, int esq,int dir){
int part;
part= particao(v,esq,dir);
if(dir<part){
return qksort(v,esq,part+1);}
if(esq<=part){
return qksort(v,part-1,dir);
}
}
int main(){
int vet[TAM]={2,7,5,3,6};
int i;
qksort(vet,0,TAM-1);
printf(" \n Valores ordenados \n");
for(i = 0; i < TAM; i++)
{
printf("%d\n", vet[i]);
}
system("pause");
return 0;
}
Marcos
Curtidas 0