我實際上正在做一個程式來測驗不同的排序演算法。但是,當我嘗試計時代碼執行時,它只列印 3 位小數,正如您在我粘貼的輸出部分中看到的那樣,我不知道為什么。
code.c
//insertion sort test
time_t t = 0;
t = clock();
insertion(arr, n);
t = clock() - t;
double time_taken = ((double)t)/CLOCKS_PER_SEC; // in secondi
printf("insertion() took %f seconds to execute\n", time_taken);
fprintf(fp, "%f,", time_taken);
fflush(fp);
data.csv
0.001000,0.000000,0.000000,0.001000,0.000000
0.002000,0.000000,0.000000,0.002000,0.000000
0.005000,0.000000,0.000000,0.005000,0.000000
0.008000,0.001000,0.000000,0.008000,0.000000
0.004000,0.000000,0.000000,0.021000,0.000000
0.011000,0.000000,0.000000,0.024000,0.001000
0.008000,0.016000,0.000000,0.025000,0.000000
0.031000,0.001000,0.001000,0.029000,0.000000
0.041000,0.001000,0.000000,0.033000,0.000000
0.060000,0.001000,0.001000,0.051000,0.001000
0.062000,0.001000,0.000000,0.059000,0.001000
0.074000,0.002000,0.001000,0.068000,0.000000
0.085000,0.002000,0.001000,0.080000,0.000000
我使用的是帶有 AMD Ryzen 5 處理器的 Windows 11。也許是因為硬體或作業系統中的某些配置。
uj5u.com熱心網友回復:
嘗試運行這個:
#include <time.h>
#include <stdio.h>
int main () {
printf("CLOCKS_PER_SEC: %ld", CLOCKS_PER_SEC);
return(0);
}
如果 CLOCKS_PER_SEC 顯示為 1000,那么這就解釋了為什么精度限制為小數點后 3 位。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527298.html
標籤:C视窗算法时间钟
