【发布时间】:2016-07-01 02:10:46
【问题描述】:
我想知道我的代码中 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;
}
【问题讨论】:
-
应用秒表开始/结束
-
A benchmark example 在另一个问题上。
-
在 C++ 中测量函数的执行时间 stackoverflow.com/a/40380118/6180077
标签: c++ algorithm sorting time