2012-02-21 102 views
1

嘿家伙我想花时间在微秒内编写一些搜索函数,它需要花费足够长的时间才能显示2位有效数字。我编写了这段代码来定时搜索功能,但似乎太快了。我总是最终得到0微秒,除非我运行搜索5次,然后获得1,000,000微秒。我想知道如果我在数秒内弄错了数学计算时间,或者我可以使用某种格式化函数强制它显示两个sig figs?以微秒为单位计时功能

clock_t start = clock(); 
index = sequentialSearch.Sequential(TO_SEARCH); 
index = sequentialSearch.Sequential(TO_SEARCH); 
clock_t stop = clock(); 
cout << "number found at index " << index << endl; 
int time = (stop - start)/CLOCKS_PER_SEC; 
time = time * SEC_TO_MICRO; 
cout << "time to search = " << time<< endl; 
+0

的链接通常你会做更多的电话和取平均值。 – 2012-02-21 21:50:45

+0

是的,我打算在后面补充说,现在我只是想让它工作。 – Jonathan 2012-02-21 21:55:49

+0

虽然通常的clock()分辨率大概是10ms,但这可能不够。如果您需要更高的精度,请查看''的高分辨率时钟。 – 2012-02-21 22:03:30

回答

3

您正在使用整数除法在这条线:

int time = (stop - start)/CLOCKS_PER_SEC; 

我建议使用doublefloat类型,你可能需要转换师的组成部分。

+0

是的,解决了它。我应该看到这一点。感谢您指出。 – Jonathan 2012-02-21 22:00:20

相关问题