我有一个代码,我想计算两种排序算法合并排序和快速排序所花费的时间,以微秒或更精确的方式对 N 个数字进行排序。 这样计算出的两个时间将输出到终端。 代码(部分代码):
printf("THE LIST BEFORE SORTING IS(UNSORTED LIST):\n");
printlist(arr,n);
mergesort(extarr,0,n-1);
printf("THE LIST AFTER SORTING BY MERGE SORT IS(SORTED LIST):\n");
printlist(extarr,n);
quicksort(arr,0,n-1);
printf("THE LIST AFTER SORTING BY QUICK SORT IS(SORTED LIST):\n");
printlist(arr,n);
通过提供如何完成它来帮助我。我尝试过使用两个变量作为开始停止并将它们分别保持在函数调用上方和下方,但这根本没有帮助,并且总是将其差异打印为零。 请建议一些其他方法或功能,请记住它在任何类型的操作系统中运行都没有问题。 感谢您提前提供的任何帮助。
最佳答案
方法:1
要计算程序所花费的总时间,您可以使用linux实用程序“time”。
Lets your program name is test.cpp.
$g++ -o test test.cpp
$time ./test
Output will be like :
real 0m11.418s
user 0m0.004s
sys 0m0.004s
方法:2
您还可以使用 Linux 分析方法“gprof”通过不同的函数查找时间。
首先,您必须使用“-pg”标志编译程序。
$g++ -pg -o test test.cpp
$./test
$gprof test gmon.out
PS:gmon.out是gprof创建的默认文件
关于计算C程序中特定函数所花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12791676/