我們正在編寫關於不同排序算法的報告。他們所有的工作,但對於打印合並中的處理時間,當我得到一個錯誤的排序時間(* time_t)沒有得到當前時間(作業)
我寫了下面的代碼
...BubbleSort(arr3,50000);
time(&time_now);
f = difftime(time_now,time_then);
printf("BubbleSort - tempo: %f\n",f);
time(&time_then);
printf("then: %s",ctime(&time_then));
MergeSort(arr4,0,49999);
time(&time_now);
printf("now: %s",ctime(&time_now));
f = difftime(time_now,time_then);
printf("MergeSort - tempo: %f\n",f);
,但它總是說時間= 0的合併排序
似乎無法獲取當前時間或歸併的處理時間是非常低的(但它的工作原理) 在此先感謝
你對MergeSort的實現是什麼樣的?另外,'時間'可能不會爲您提供更快的操作所需的精度。 'clock()'更常用於進行這種比較......或者來自boost的高精度定時器。 –
你已經有了一個假設(「真的很低」),所以你爲什麼不測試它?排序更多的數據? – PlasmaHH
'difftime()'以秒爲單位返回差值(儘管返回值是'double'...)。在'time_then'和'time_now'之間是0秒的差異,正如你在輸出中看到的那樣。所以一切正常。 – mb84