Как засечь время выполнения функции? - C (СИ)
Формулировка задачи:
Упражнение 3.1 K&R
как новичку без серьезных описаний и дополнений кода засечь время выполнения функции? работаю в QT
В нашей программе бинарного поиска внутри цикла осуществляются две проверки, хотя
могла быть только одна (при увеличении числа проверок вне цикла). Напишите программу, предусмотрев в
ней одну проверку внутри цикла. Оцените разницу во времени выполнения.
Решение задачи: «Как засечь время выполнения функции?»
textual
Листинг программы
void function(list argument){ clock_t time_start= clock(); ///body function clock_t time_end = clock() - time_start; printf("%u", (double)time_end / CLOCKS_PER_SEC);
Объяснение кода листинга программы
- В функции
function
объявлен параметрargument
типаlist
. - В начале функции, в переменной
time_start
, сохраняется текущее значение часовщика. - Выполняется тело функции.
- В переменной
time_end
хранится время, прошедшее с момента вызова функции до ее окончания. - Значение
time_end
выводится на экран с помощью функцииprintf
. - В качестве формата вывода используется строка
%u
, которая означает, что нужно вывести значение без знака. - Для получения времени в секундах используется константа
CLOCKS_PER_SEC
. (double)
передtime_end
обеспечивает преобразование значения в типdouble
, чтобы результат можно было разделить на количество секунд в часе.- Результат вычисления
time_end / CLOCKS_PER_SEC
выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д