diff --git a/a.out b/a.out new file mode 100644 index 0000000000000000000000000000000000000000..084f7f8236acf30cbcab421912deff1446c6b235 Binary files /dev/null and b/a.out differ diff --git a/fila_edu_cir.c b/fila_edu_cir.c index 48a739e4fdc4a7b0e3d9aadee95e5715b19d961d..a252912eb6ba0456860291779c7a76aa11ed852c 100644 --- a/fila_edu_cir.c +++ b/fila_edu_cir.c @@ -1,5 +1,6 @@ #include <stdio.h> #include <stdlib.h> +#include <time.h> //Fila feita com vetor circular @@ -54,6 +55,29 @@ void destroi(struct Fila *fila) { } 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); insere(fila, 1); insere(fila, 2); diff --git a/fila_edu_vetor_ot.c b/fila_edu_vetor_ot.c index a00d7286ad4be2d76b820bbc4cb63905a51422b3..9ed044b945d11c4ed94f658505283102907dfd4a 100644 --- a/fila_edu_vetor_ot.c +++ b/fila_edu_vetor_ot.c @@ -1,5 +1,6 @@ #include <stdio.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 @@ -72,6 +73,31 @@ void destroi(struct Fila *fila) { } 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); insere(fila, 1); insere(fila, 2); diff --git a/fila_edu_vetor_simples.c b/fila_edu_vetor_simples.c index 512924b6dade9126e73e5ab9ddd0197e318b75c5..b3607227817a989e007f910b550ebca75a26ede6 100644 --- a/fila_edu_vetor_simples.c +++ b/fila_edu_vetor_simples.c @@ -1,5 +1,6 @@ #include <stdio.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 @@ -57,6 +58,31 @@ void destroi(struct Fila *fila) { } 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); insere(fila, 1); insere(fila, 2);