estou tentando fazer um trabalho da faculdade pra gerar um vetor com números aleatórios distintos e ordenar esse vetor pelos tres algorítmos básicos de ordenação: seleção, inserção e bolha. Também faz parte do trabalho "pegar" o tempo que cada um gasta para os mais diversos tamanhos de vetor. Agora o problema é justamente com a função clock() do time.h que tá funcionando de forma inesperada, ela simplesmente dá o mesmo tempo final e inicial, sendo que entre uma chamada e outra da função clock() o meu algorítmo faz uma das ordenações acima. No fim das contas o printf abaixo do meu código só imprime zero(final-inicial). Antes de implementar esse programa, eu já tinha feito um teste com a clock() só pra ver como funciona e tal e ela funcionou direitinho pra um programa bem pequeno, alguém pode me dar uma luz?
O algorítmo que TENTA calcular o tempo da geração do vetor, sem sucesso:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
clock_t n, tFim, tInicio, tDecorrido;
srand(time(NULL));
printf("Digite o tamanho do vetor a ser gerado: ");
scanf("%d", &n);
int vetor[n];
tInicio = clock();
printf("Tempo inicial: %d\n", tInicio);
int count, num;
for(count = 0; count < n; count++){
num = rand() % ( 2 * n ) + 1;
while(ExisteNoVetor(vetor, num, count))
num = rand() % ( 2 * n ) + 1;
vetor[count] = num;
}
tFim = clock();
printf("Tempo final: %d\n", tFim);
tDecorrido = tFim - tInicio;
printf("Vetor gerado em %d milisegundos:\n", tDecorrido);
Imprime(vetor, n);
return 0;
}
E aqui o algorítmo que, não sei porque, é mais especial que o outro, roda:
#include <stdio.h>
#include <time.h>
int main(){
int count, duracao, begin, end;
begin = clock();
for(count = 0; count < 10000; count++) printf("%d ", count);
end = clock();
duracao = end - begin;
printf("O laco for demorou %dms ...", duracao);
system("pause");
return 0;
}
Pergunta
Ark
Aew galera, beleza?
estou tentando fazer um trabalho da faculdade pra gerar um vetor com números aleatórios distintos e ordenar esse vetor pelos tres algorítmos básicos de ordenação: seleção, inserção e bolha. Também faz parte do trabalho "pegar" o tempo que cada um gasta para os mais diversos tamanhos de vetor. Agora o problema é justamente com a função clock() do time.h que tá funcionando de forma inesperada, ela simplesmente dá o mesmo tempo final e inicial, sendo que entre uma chamada e outra da função clock() o meu algorítmo faz uma das ordenações acima. No fim das contas o printf abaixo do meu código só imprime zero(final-inicial). Antes de implementar esse programa, eu já tinha feito um teste com a clock() só pra ver como funciona e tal e ela funcionou direitinho pra um programa bem pequeno, alguém pode me dar uma luz?
O algorítmo que TENTA calcular o tempo da geração do vetor, sem sucesso:
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ clock_t n, tFim, tInicio, tDecorrido; srand(time(NULL)); printf("Digite o tamanho do vetor a ser gerado: "); scanf("%d", &n); int vetor[n]; tInicio = clock(); printf("Tempo inicial: %d\n", tInicio); int count, num; for(count = 0; count < n; count++){ num = rand() % ( 2 * n ) + 1; while(ExisteNoVetor(vetor, num, count)) num = rand() % ( 2 * n ) + 1; vetor[count] = num; } tFim = clock(); printf("Tempo final: %d\n", tFim); tDecorrido = tFim - tInicio; printf("Vetor gerado em %d milisegundos:\n", tDecorrido); Imprime(vetor, n); return 0; }E aqui o algorítmo que, não sei porque, é mais especial que o outro, roda:#include <stdio.h> #include <time.h> int main(){ int count, duracao, begin, end; begin = clock(); for(count = 0; count < 10000; count++) printf("%d ", count); end = clock(); duracao = end - begin; printf("O laco for demorou %dms ...", duracao); system("pause"); return 0; }Agradeço pela atenção, []'s.
Editado por ArkLink para o comentário
Compartilhar em outros sites
4 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.