AfanasevGad7

This is a task for our favourite professor
git clone git://git.stellar-nexus.ru/AfanasevGad7
Log | Files | Refs | README

commit 8fc4d9a71c812efd995ce759a8fad0d82644bd2a
parent e11d051e1c7d72413df2ee54d05230e9e1489d91
Author: Plat <plat@stellar-nexus.ru>
Date:   Thu,  6 Nov 2025 21:09:43 +0000

Fixed time measurment logic

Diffstat:
Mconfig.h | 3++-
Mrb.c | 17+++++++++--------
2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/config.h b/config.h @@ -1 +1,2 @@ -#define FILENAME "sample_data.txt" +#define FILENAME "sample_data.txt" +#define TESTNUMBER 1000000 diff --git a/rb.c b/rb.c @@ -8,7 +8,6 @@ #include "config.h" -#define TESTNUMBER 1000000 inline Node * init(int val) @@ -112,22 +111,24 @@ main(int argc, char *argv[]) if (!(file = fopen(filename, "r"))) eprintf("fopen %s:", filename); - int arr[TESTNUMBER], ch; + int arr[TESTNUMBER+1], ch; char w[64]; - int i = 0, wi = 0; + int len = 0, wi = 0; do { ch = fgetc(file); if (!isspace(ch) && ch != EOF) { w[wi++] = ch; } else if (wi > 0) { w[wi] = '\0'; - arr[i++] = estrtonum(w, 0, INT_MAX); + arr[len++] = estrtonum(w, 0, INT_MAX); wi = 0; } - } while (ch != EOF); + } while (ch != EOF && len <= TESTNUMBER); efshut(file, filename); if (i < TESTNUMBER) eprintf("Array too small\n"); + if (i > TESTNUMBER) + wepritnf("Array too big - using only %d elements\n", TESTNUMBER); Node *root = NULL; @@ -139,8 +140,8 @@ main(int argc, char *argv[]) /* Searching for every possible value */ clock_t start_time, end_time; start_time = clock(); - for (int i = 0; i <= INT_MAX; ++i) - search(root, i); + for (int i = 0; i <= TESTNUMBER; ++i) + search(root, arr[i]); end_time = clock(); - printf("%ld\n", (start_time-end_time)/CLOCKS_PER_SEC); + printf("%f\n", (double)(end_time-start_time)/CLOCKS_PER_SEC); }