estudo ciência da computação e estou na modalidade do curso em C que estuda métodos de pesquisa e ordenação, porém meu professor não sabe explicar muito bem e estou com muita dificuldade para entender os algoritmos (bubble sort, quicksort e etc). Poderiam me ajudar com essas perguntas? Vi alguns vídeos no youtube mas também fiquei com dificuldades.
Qual método de ordenação gasta mais tempo para classificar o conjunto de dados?
O método Bubble Sort, pois consome tempo e processamento. (de acordo com o que eu entendi pelo meu professor seria o método bubble sort)
Qual método de ordenação gasta menos tempo para classificar o conjunto de dados?
O Quicksort é um método de ordenação mais rápido e eficiente. (e o método mais rápido o quicksort)
Por que para algumas quantidade de valores, o quicksort teve o tempo zerado. Isso era esperado? Explique!
a)Qual é a chamada para executar o método quick sort? Escreva a instrução.
b)Como é escolhido o elemento pivô?
c)Após a primeira partição do vetor, como ficarão as duas chamadas dentro da função quicksort()?
d)Quantas chamadas ao método quicksort() ocorrerão?
Segue um código que meu professor passou e pediu para explicarmos o porquê de algumas coisas, mas tentei rodar ele no DEVC++ e não consigo entender!!
#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;
}
Pergunta
zennom
Boa noite pessoal,
estudo ciência da computação e estou na modalidade do curso em C que estuda métodos de pesquisa e ordenação, porém meu professor não sabe explicar muito bem e estou com muita dificuldade para entender os algoritmos (bubble sort, quicksort e etc). Poderiam me ajudar com essas perguntas? Vi alguns vídeos no youtube mas também fiquei com dificuldades.
Qual método de ordenação gasta mais tempo para classificar o conjunto de dados?
O método Bubble Sort, pois consome tempo e processamento. (de acordo com o que eu entendi pelo meu professor seria o método bubble sort)
Qual método de ordenação gasta menos tempo para classificar o conjunto de dados?
O Quicksort é um método de ordenação mais rápido e eficiente. (e o método mais rápido o quicksort)
Por que para algumas quantidade de valores, o quicksort teve o tempo zerado. Isso era esperado? Explique!
a)Qual é a chamada para executar o método quick sort? Escreva a instrução.
b)Como é escolhido o elemento pivô?
c)Após a primeira partição do vetor, como ficarão as duas chamadas dentro da função quicksort()?
d)Quantas chamadas ao método quicksort() ocorrerão?
Segue um código que meu professor passou e pediu para explicarmos o porquê de algumas coisas, mas tentei rodar ele no DEVC++ e não consigo entender!!
Editado por zennomcodigo não identado
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.