Я нахожусь на K & R книга и на упражнение 3-1. Я думаю, что моя библиотека «time.h» сломана. Сначала я думал, что мой код ошибочен, но когда я проверил решения для упражнения в сети, они тоже не работают.time.h библиотека не работает
Проблема:
Выход программа всегда показывает ноль секунд, и иногда происходит обмен «часы»:
Output 1:
Element -1 not found.
binsearch() took 10000 clocks (0 seconds)
Element -1 not found.
binsearch2() took 20000 clocks (0 seconds)
Output 2:
Element -1 not found.
binsearch() took 20000 clocks (0 seconds)
Element -1 not found.
binsearch2() took 10000 clocks (0 seconds)
Целью программы является сравнение двух функций с точки зрения скорости , Как мне это сравнить?
Вот код теста:
for (i = 0, time_taken = clock(); i < 100000; ++i) {
index = binsearch(n, testdata, MAX_ELEMENT); /* all this code is duplicated with a
} call to binsearch2 instead */
time_taken = clock() - time_taken;
if (index < 0)
printf("Element %d not found.\n", n);
else
printf("Element %d found at index %d.\n", n, index);
printf("binsearch() took %lu clocks (%lu seconds)\n",
(unsigned long) time_taken,
(unsigned long) time_taken/CLOCKS_PER_SEC);
Я попробовал эту программу как в Linux и Windows.
Нет, это не так. Если вы предлагаете снизить итерации до 10-20k, выход переходит в «0 часов» и еще 0 секунд. – 1der
Простите, ошибочно. Напротив, вам нужно увеличить число итераций с большим коэффициентом (по крайней мере, столько же, сколько «CLOCKS_PER_SEC'). – Mat