gpt4 book ai didi

c++ - time(*time_t) 获取不到当前时间(作业)

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:09:31 25 4
gpt4 key购买 nike

我们正在制作一些关于不同排序算法的报告。它们都在工作,但是在打印合并排序的处理时间时出现错误

我写了下面的代码

...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);

但它总是说 time = 0s for merge sort

enter image description here

好像是获取不到当前时间或者mergesort的处理时间真的很低(但是可以)提前致谢

最佳答案

您看到零是因为您的 MergeSort 速度如此之快,以至于它在您系统上可测量的时间间隔内完成。

为您的程序提供更多要排序的数据应该会有所帮助。或者,您可以更改时间测量机制以获得更精确的东西。不过,第二种方法取决于系统。

MergeSort 的执行时间增长为 N*log2(N),因此可以看到与 BubbleSort 相当的时间随着 N2 的增长,你需要给它更多的数据。对于包含 50,000 个项目的数组,数学计算结果大约是其大小的 3,000 。如果您向 MergeSort 传递一个包含大约 50,000*3,000=150,000,000 项的数组,您应该会看到打印出一个非零数字。

注意:不要尝试将那么多数据传递给 BubbleSort - 它需要很长时间才能完成,除非数据已经非常接近排序。

关于c++ - time(*time_t) 获取不到当前时间(作业),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048465/

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