如何计算函数的时间
How to calculate the time of a function?
我想知道我的代码中quickSort函数的时间,我用了clock()
,它得到0..我也尝试使用chrono
,它仍然得到我0。我还让我的数组很大.我不知道我的代码是不是错的!
这是我的代码
#include <iostream>
#include <chrono>
#include <ctime>
#include <ratio>
using namespace std;
using namespace chrono;
void quick_sort(int *arr,int left,int right){
int i=left,j=right;
int pivot=arr[(left+right)/2];
while(i<=j){
while(arr[i]<pivot)
i++;
while(arr[j]>pivot)
j--;
if(i<=j){
swap(arr[i],arr[j]);
i++;
j--;
}
}
if(left<j)
quick_sort(arr,left,j);
if(right>i)
quick_sort(arr,i,right);
}
int main()
{
int arr[30]={4,2,5,3,8,9,7,10,54,23,65,78,10,44,56,91,75,79,42,81,10,57,23,651,78,100,47,50,71,715};
high_resolution_clock::time_point t1 = high_resolution_clock::now();
quick_sort(arr,0,29);
high_resolution_clock::time_point t2 = high_resolution_clock::now();
duration<double>time_span = duration_cast<duration<double> >(t2-t1);
cout<<"it takes "<<time_span.count()<<" seconds"<<endl;
return 0;
}
简单的实现:
#include <iostream>
#include <iomanip>
#include <string>
// benchmak
#include <limits>
#include <random>
#include <chrono>
#include <algorithm>
#include <functional>
class Clock
{
std::chrono::time_point<std::chrono::steady_clock> _start;
public:
static inline std::chrono::time_point<std::chrono::steady_clock> now() { return std::chrono::steady_clock::now(); }
Clock() : _start(now())
{
}
template<class DurationUnit>
std::size_t end()
{
return std::chrono::duration_cast<DurationUnit>(now() - _start).count();
}
};
用法:
int main()
{
{
Clock clock;
business();
const double unit_time = clock.end<std::chrono::nanoseconds>();
std::cout << std::setw(40) << "business(): " << std::setprecision(3) << unit_time << " nsn";
}
}
相关文章:
- rcpp函数中的清理时间很长
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 函数的时间复杂度是多少?
- 在多个时间戳处执行函数
- 如何计算此排序函数的时间复杂度?
- 为什么在尝试测量函数返回所需的时间时,我的运行时编号是错误的?
- 将 hh:mm:ss.zzz 时间 QString 转换为毫秒的单行函数?
- 如何计算函数的时间复杂度?
- 构造函数的链接时间自动注册
- 对于等待以 std::future wait() 返回的函数的 CPU 使用率或检查标志在循环中休眠一段时间哪个更好?
- C++不重载时间函数,所以我们不需要写 NULL 有什么原因吗?
- 在确定函数的时间复杂度时需要帮助
- OpenCV 函数 cv::remap() 的执行时间更长,当程序在两者之间进入睡眠状态时
- 延迟函数使打开的框架窗口冻结,直到指定的时间过去
- 超过了三次函数根平分搜索时间限制
- 用于测量重载运算符和成员函数的时间的函数
- C++ 测量重复调用的函数的时间
- 布尔函数在一段时间内不起作用
- 加泰罗尼亚数字,递归函数时间复杂度
- 什么占用了我的函数时间