gpt4 book ai didi

c - 如何测试不同算法的效率

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:24 25 4
gpt4 key购买 nike

如何测试不同算法的效率,比如排序算法?我尝试使用 clock_gettime。它准确吗?有什么办法可以解决这个问题吗?

#include <stdio.h>
#include <sys/time.h>
#include <time.h>

/* compute interval: end - start */
struct timespec diff(struct timespec start, struct timespec end);

/* tested algorithm, just an example. Print 10000 lines "hello" */
void testFunc(void);

int main(void)
{
struct timespec start;
struct timespec end;

struct timespec interval ;

clock_gettime(CLOCK_REALTIME, &start);

/* call the tested algorithm */
testFunc();

clock_gettime(CLOCK_REALTIME, &end);

interval = diff(start, end);
printf("%lld.%.9ld(seconds)\n", (long long)interval.tv_sec, interval.tv_nsec);

return 0;
}

/* compute interval: end - start */
struct timespec diff(struct timespec start, struct timespec end)
{
struct timespec temp;

if ((end.tv_nsec - start.tv_nsec) < 0) {
temp.tv_sec = end.tv_sec - start.tv_sec - 1;
temp.tv_nsec = 1000000000 + end.tv_nsec - start.tv_nsec;
}
else {
temp.tv_sec = end.tv_sec - start.tv_sec;
temp.tv_nsec = end.tv_nsec - start.tv_nsec;
}

return temp;
}

/* tested algorithm, just an example. Print 10000 lines "hello" */
void testFunc(void)
{
int i;

for (i = 0; i < 10000; i++) {
printf("hello\n");
}
}

最佳答案

您可以使用time 命令。可以找到很好的解释here .首先将源代码编译成可执行的二进制文件。然后运行 ​​time ./executable_code 并且不要根据一两个测试做出决定。祝你好运!

关于c - 如何测试不同算法的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38939847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com