Duvida sobre o método QuickSort!!

30/10/2016

0

C# C

Pessoal, tenho esse código abaixo, mas tenho algumas dúvidas com relação a ele, gostaria de saber se vocês pudessem me esclarecer algumas dúvidas que tenho, segue abaixo:

#include<stdio.h>
#include<time.h>
#define MAX 10
void aleatorio();
void exibir();
void quicksort(int e,int d);
int a[MAX];
main(){
    aleatorio();
    printf("\\nVetor gerado\\n");
    exibir();
    system("pause");
    quicksort(0,MAX-1);
    printf("\\n\\nVetor ordenado\\n");
    exibir();
}
void exibir(){
    int i;
    for(i=0;i<MAX;i++)
     printf("a[%d]=%d\\n",i,a[i]);
}
void aleatorio(){
    int i;
    srand(time(NULL));
    for(i=0;i<MAX;i++)
     a[i]=rand()%MAX;
}
void quicksort(int e,int d){  
    int i;
    if(d>e){ 
         i=particao(e,d); /* Particionando o vetor */
               quicksort(e,i-1);
              quicksort(i+1,d);
       }
}


int particao(int e,int d){
int v,i,j,t;
  v=a[d];   
  i=e-1;   
  j=d;
  do{  
    do{ 
                 i=i+1; /* Procura o maior*/
        }while ((a[i]<v) &&  (i<d)); 
     do{ 
             j=j-1; /* Procura o menor*/
        } while ((a[j]>v) && (j>0)); 
    
         t=a[i];  
        a[i]=a[j]; 
        a[j]=t; 
  } while (j > i);
// colocando o pivo a[d] em seu lugar
    a[j]=a[i];  
    a[i]=a[d];
    a[d]=t;
    return i;
}



Após a primeira partição do vetor, como ficarão as duas chamadas dentro da função quicksort()?


Quantas chamadas ao método quicksort() ocorrerão?


Eu também reparei que para alguns casos, o o quicksort teve o tempo zerado, gostaria de saber o porquê? Pelo fato dele ser mais rápido que a maioria dos outros algoritmos?

Agradeço quem me ajudar!!


Obrigada!
Viviane Francelino

Viviane Francelino

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar