任何人都可以告訴我,如果我錯過下面兩行會發生什麼?c程序計算執行時間錯誤?
time_spent = (double)(end - begin)/CLOCKS_PER_SEC;
我試圖計算運行我的排序問題的時候,忘了強制轉換爲加倍。代碼運行了將近90分鐘,但輸出時間爲「270.000006」。任何人都可以請幫助我弄清楚這個270表示什麼?
此外它有時會顯示「-ve」值。任何解決這個問題的方法。
編輯 - 我排序10^9和10^10的數字,所以代碼將運行幾個小時。
任何人都可以告訴我,如果我錯過下面兩行會發生什麼?c程序計算執行時間錯誤?
time_spent = (double)(end - begin)/CLOCKS_PER_SEC;
我試圖計算運行我的排序問題的時候,忘了強制轉換爲加倍。代碼運行了將近90分鐘,但輸出時間爲「270.000006」。任何人都可以請幫助我弄清楚這個270表示什麼?
此外它有時會顯示「-ve」值。任何解決這個問題的方法。
編輯 - 我排序10^9和10^10的數字,所以代碼將運行幾個小時。
正確的用法是:
clock_t begin, end;
double time_spent;
begin = clock();
/* actual task that needs to be monitored */
end = clock();
time_spent = (double)(end - begin)/CLOCKS_PER_SEC; // in seconds
您在這裏測量CPU時間,而不是經過的時間,其中包括I/O時間爲好。 CLOCKS_PER_SEC是一個在其中聲明的常量。計算需要在浮點運算中完成。 計算計時的另一種方法是使用時間命令。
你如何得到最終值和開始值以及它們是什麼類型? – 2014-08-28 08:15:08
我已經使用了Debasish在下面提到的相同的代碼。 – Anurag 2014-08-28 08:42:39