Существуют различные способы сделать это. Один из простых заключается в том, чтобы найти некоторый код, который выполняет временные интервалы с высоким разрешением (микросекунда или меньше). Заверните вызовы к стартовому таймера и остановки таймера функции вокруг вызова функции ЛВП, а затем распечатать получившийся истекшее время:
#include "timer.h"
Clock clk;
char elapsed[32];
clk_start(&clk);
lcs_recursive();
clk_stop(&clk);
printf("Elapsed time (recursive): %s\n",
clk_elapsed_us(&clk, elapsed, sizeof(elapsed)));
Аналогично для функции lcs_dynamic()
.
Если время для одной итерации слишком мал, то оберните петлю вокруг функции. Обычно я устанавливаю код синхронизации в функцию, а затем вызываю это несколько раз, чтобы получить согласованные результаты.
Я могу указать на представленный пакет.
Да, вы можете с уверенностью накормить результаты в виде графического пакета, такого как SciPy. Очевидно, вам придется параметризовать размер теста и время кода несколько раз при каждом размере.
Измерение прошедшего времени, чтобы определить временную сложность алгоритма опасен, так как она требует полного набора входных значений, в пределах не только по размеру, но также и в то числе pathalogical случаев, для того, чтобы дать хорошие результаты. Даже измеряя относительную сложность двух алгоритмов, вы должны удалить постоянное масштабирование и определить, имеют ли они подобные патологические случаи. –