Skip to content
Snippets Groups Projects
Commit 3d40db6d authored by Eduardo Souza's avatar Eduardo Souza
Browse files

[ADD] TIMER

parent b2f21306
No related branches found
No related tags found
No related merge requests found
a.out 0 → 100644
File added
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <time.h>
//Fila feita com vetor circular //Fila feita com vetor circular
...@@ -54,6 +55,29 @@ void destroi(struct Fila *fila) { ...@@ -54,6 +55,29 @@ void destroi(struct Fila *fila) {
} }
int main() { int main() {
/* PRIMEIRA FILA TEMPO */
struct Fila *fila1 = cria(500);
struct timespec inicio, fim;
clock_gettime(CLOCK_MONOTONIC, &inicio);
// Teste com várias inserções e remoções
// Vamos fazer 1000000 operações de enfileiramento e desenfileiramento para medir a performance
for (int i = 0; i < 1000000; i++) {
if (fila1->tamanho < fila1->capacidade) { // Insere metade das vezes
insere(fila1, (float) i);
}
if (i % 2 == 0 && fila1->tamanho > 0) { // Remove metade das vezes
remove_fila(fila1);
}
}
// Captura o timestamp após as operações
clock_gettime(CLOCK_MONOTONIC, &fim);
double tempo_gasto = (fim.tv_sec - inicio.tv_sec) + (fim.tv_nsec - inicio.tv_nsec) / 1000000000.0;
printf("Tempo gasto: %.2f segundos\n", tempo_gasto);
destroi(fila1);
/* SEGUNDA FILA */
struct Fila *fila = cria(5); struct Fila *fila = cria(5);
insere(fila, 1); insere(fila, 1);
insere(fila, 2); insere(fila, 2);
......
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <time.h>
//Fila feita com vetor linear otimizado, ou seja, desloca elementos para esquerda quando o fim chega ao final do vetor //Fila feita com vetor linear otimizado, ou seja, desloca elementos para esquerda quando o fim chega ao final do vetor
...@@ -72,6 +73,31 @@ void destroi(struct Fila *fila) { ...@@ -72,6 +73,31 @@ void destroi(struct Fila *fila) {
} }
int main() { int main() {
/* PRIMEIRA FILA TEMPO */
struct Fila *fila1 = cria(500);
struct timespec inicio, fim;
clock_gettime(CLOCK_MONOTONIC, &inicio);
// Teste com várias inserções e remoções
// Vamos fazer 1000000 operações de enfileiramento e desenfileiramento para medir a performance
for (int i = 0; i < 1000000; i++) {
if (fila1->tamanho < fila1->capacidade) { // Insere metade das vezes
insere(fila1, (float) i);
}
if (i % 2 == 0 && fila1->tamanho > 0) { // Remove metade das vezes
remove_fila(fila1);
}
}
clock_gettime(CLOCK_MONOTONIC, &fim);
double tempo_gasto = (fim.tv_sec - inicio.tv_sec) + (fim.tv_nsec - inicio.tv_nsec) / 1000000000.0;
printf("Tempo gasto: %.2f segundos\n", tempo_gasto);
destroi(fila1);
/*SEGUNDA FILA TEMPO*/
struct Fila *fila = cria(5); struct Fila *fila = cria(5);
insere(fila, 1); insere(fila, 1);
insere(fila, 2); insere(fila, 2);
......
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <time.h>
//Fila feita com vetor linear simples, ou seja, a cada remoção, move-se os elementos do vetor //Fila feita com vetor linear simples, ou seja, a cada remoção, move-se os elementos do vetor
...@@ -57,6 +58,31 @@ void destroi(struct Fila *fila) { ...@@ -57,6 +58,31 @@ void destroi(struct Fila *fila) {
} }
int main() { int main() {
/* PRIMEIRA FILA TEMPO */
struct Fila *fila1 = cria(500);
struct timespec inicio, fim;
clock_gettime(CLOCK_MONOTONIC, &inicio);
// Teste com várias inserções e remoções
// Vamos fazer 1000000 operações de enfileiramento e desenfileiramento para medir a performance
for (int i = 0; i < 1000000; i++) {
if (fila1->tamanho < fila1->capacidade) { // Insere metade das vezes
insere(fila1, (float) i);
}
if (i % 2 == 0 && fila1->tamanho > 0) { // Remove metade das vezes
remove_fila(fila1);
}
}
// Captura o timestamp após as operações
clock_gettime(CLOCK_MONOTONIC, &fim);
double tempo_gasto = (fim.tv_sec - inicio.tv_sec) + (fim.tv_nsec - inicio.tv_nsec) / 1000000000.0;
printf("Tempo gasto: %.2f segundos\n", tempo_gasto);
destroi(fila1);
/*SEGUNDA FILA*/
struct Fila *fila = cria(5); struct Fila *fila = cria(5);
insere(fila, 1); insere(fila, 1);
insere(fila, 2); insere(fila, 2);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment