commit 8fc4d9a71c812efd995ce759a8fad0d82644bd2a
parent e11d051e1c7d72413df2ee54d05230e9e1489d91
Author: Plat <plat@stellar-nexus.ru>
Date: Thu, 6 Nov 2025 21:09:43 +0000
Fixed time measurment logic
Diffstat:
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);
}