2012-02-21 92 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

相關問題