gpt4 book ai didi

c - 时差为零秒

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:04 27 4
gpt4 key购买 nike

我在这里尝试计算完成合并排序所需的时间。但是开始和结束之间的差异显示为零秒。我不知道是什么问题。为了方便起见,我只发布主要功能计算时间。

#include<stdio.h>
#include<time.h>
int main(){
clock_t start,end,diff;
start=clock();
int arr[4]={12,2,56,1};
int i;
printf("beforn sort\n");
printf("\n-------------\n");
for(i=0;i<4;i++){
printf("%d ",arr[i]);
}
printf("\n \n");
Merge_sort(arr,0,3);
printf("after merge sort\n");
printf("\n-------------\n");
for(i=0;i<4;i++){
printf("%d ",arr[i]);
}
printf("\n");
end=clock();
diff=(double)(end-start)/CLOCKS_PER_SEC;
printf("total time is %f sec ",diff);
}

最佳答案

clock() 返回程序启动后经过的时钟滴答数。这样

start=clock();

给出从程序启动到调用 clock() 的时钟滴答数。这会在排序前为您提供时钟滴答声。这是时钟滴答声的数量,而不是秒数。

排序后

end=clock()

给出从程序启动到调用 clock() 的时钟滴答数。这会在排序后为您提供时钟滴答声。这是时钟滴答声的数量,而不是秒数。

现在 end-start 给出排序过程中的时钟滴答数。(这也不以秒为单位)

(Number of clock ticks)/(Number of clock ticks in one second)= time in seconds

(end-start)/CLOCKS_PER_SEC 以秒为单位给出排序过程所需的时间。但是在 C 中,这给出了一个整数。因此必须将其类型转换为 double 以提高精度。这给出了。

double diff;
diff=(double)(end-start)/CLOCKS_PER_SEC;

关于c - 时差为零秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36852896/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com