Olá, estou fazendo um trabalho de faculdade e se refere em testar métodos diferentes de ordenação.
no caso o Bubble-Sort pra exemplo da minha pergunta:
E desculpa ser em C o código e estar perguntando aqui no GUJ, mas ctz alguem vai conhecer se houver… eu gostaria de algo mais preciso pra calcular o tempo.
esse metodo de estou usando basicamente conta o tempo do tempo inicial até o tempo final, mostrado abaixo.
mas com o vetor sendo de 100, 500, 1000… e por ai é são as quantidades de valores que preciso testar tendo no vetor. sempre retorna tempo 0.0000… entoa assim nao serei capaz de testar. Por isso pergunto se alguem sabe um método pra retorna os milésimos ou algo parecido.
MÉTODO PARA CALCULAR O TEMPO:
clock_t tempoInicial, tempoFinal;
double tempoGasto;
tempoInicial = clock();
//código a ser testado
tempoFinal = clock();
tempoGasto = (((double)(tempoFinal-tempoInicial))/CLOCKS_PER_SEC);
printf("Tempo em segundos: %f", tempoGasto);
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
main(){
int vet[10000];
int i, j,k, x,aleatorio;
clock_t tempoInicial, tempoFinal;
double tempoGasto;
for(i=0; i<10000; i++){
aleatorio = rand()%10000;
printf("Num%i: ",aleatorio);
vet[i] = aleatorio;
}
tempoInicial = clock(); //Começa contar o tempo de compilação
for(i=0; i<10000; i++){
for(j=i+1; j<10000; j++){
if(vet[i] > vet[j]){
x = vet[i];
vet[i] = vet[j];
vet[j] = x;
}
}
}
tempoFinal = clock(); //Termina de contar o tempo de compilação
tempoGasto = (((double)(tempoFinal-tempoInicial))/CLOCKS_PER_SEC); //Calcula o tempo gasto
puts("\nNumeros ordenados.\n");
for(i=0; i<10000; i++){
printf(" %i ",vet[i]);
}
puts("\n");
printf("Numero maior eh: %i\nNumero menor eh: %i\n",vet[9999],vet[0]);
printf("Tempo em segundos: %f", tempoGasto);
getch();
}
Obrigado