Estrutura de Dados e Algoritmos II - Métodos de Ordenação
Por: Carolina234 • 26/2/2018 • 474 Palavras (2 Páginas) • 400 Visualizações
...
free(v);
v=(int *) malloc(tam_a*sizeof(int));
if (v==NULL) {
printf("Error");
}
srand(time(NULL));
for(t=0;t
int r = rand()%(tam_a*2);
v[t] = r;
}
printf("Tamanho do array: %d\n", tam_a);
ord_bolha(v, tam_a);
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("Tempo: %f\n\n", cpu_time_used);
}
void exibe_numeros(int *v, int tam_a){
int f;
printf("\nNumeros ordenados: \n");
for(f=0;f
printf("%d ", v[f]);
}
[pic 2]
QuickSort
#include
#include
#include
int a;
int tam_a;
void quicksort(int *v, int e, int d){
int i;
if (d>e){
i = particao(v,e,d);
quicksort(v,e,i-1);
quicksort(v,i+1,d);
}
}
int particao(int *v, int e, int d){
int i,j;
i = e;
for (j=e+1; j
if (v[j]
++i;
troca(&v[i], &v[j]);
}
}
troca(&v[e], &v[i]);
return i;
}
void troca (int * a, int*b){
int aux;
aux = *a;
*a = *b;
*b = aux;
}
int main(a){
printf("QuickSort\n");
for (a=1;a
switch(a){
case 1:
tam_a = 15000;
executa(tam_a);
break;
case 2:
tam_a = 75000;
executa(tam_a);
break;
case 3:
tam_a = 295000;
executa(tam_a);
break;
case 4:
tam_a = 2500000;
executa(tam_a);
break;
default:
tam_a = 0;
system("PAUSE");
break;
}
}
}
int executa(){
clock_t start, end;
double cpu_time_used;
start = clock();
int t;
int *v;
free(v);
v=(int *) malloc(tam_a*sizeof(int));
if (v==NULL) {
printf("Error");
}
srand(time(NULL));
for(t=0;t
int r = rand()%tam_a*2;
v[t] = r;
}
printf("\nTamanho do array: %d\n", tam_a);
quicksort(v, 0, tam_a-1);
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("Tempo: %f", cpu_time_used);
}
HEAPSORT[pic 3]
#include
#include
#include
int a;
int tam_a;
void quicksort(int *v, int e, int d){
int i;
if (d>e){
i = particao(v,e,d);
quicksort(v,e,i-1);
quicksort(v,i+1,d);
}
...