我有一个简单的函数,它接受随机单词并使用插入排序算法将它们按字典顺序排列。我对函数没有问题(它有效,经过测试),但是当我尝试使用两个不同的时钟测量函数的执行时间时( ) 值,我在函数执行前后得到相同的值,所以它显示 0 作为耗时
clock_t t1 = clock();
InsertionSort(data, n);
clock_t t2 = clock();
/*
* Display the results.
*/
for (size = i, i = 0; i < size; ++i)
{
printf("data[%d] = \"%s\"\n", (int)i, data[i]);
}
/*
* Display the execution time
*/
printf("The time taken is.. %g ", (t2 -t1));
最佳答案
时间差太小,无法通过该方法测量,无需添加更多代码执行。 – 风向标
通常,您会想出一种方法来测量您想要计时的大量循环。 10、100、1000,无论产生什么显着的结果。还要记住,在多任务操作系统上,每次迭代花费的时间略有不同,因此您还将建立一个典型的平均值。结果也可能受到处理器缓存和/或文件缓存的影响。 – 风向标
关于c - 尝试测量 C 中函数的执行时间时得到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30211791/