问题描述
判断一个算法的好坏,不但与算法的空间复杂度和巧妙有关,还和算法的时间复杂度有关.于是问题来了如何用数据表明算法的时间复杂度优劣呢?
解决方案
C++里面提供了一个clock()
函数(它被<time.h>
头文件收录)可以用于计算程序某个环节运行时间.
CODE
#include <time.h>
#include <iostream>
using namespace std;
int main()
{
clock_t start,end;
start=clock();
int m=0;
for(int i=0;i<1e3;i++)
{
for(int j=0;j<1e3;j++)
{
m++;
}
}
end=clock();
double n=(double)(end-start)/CLOCKS_PER_SEC;
std::cout<<n<<endl;//0.002865
cout<<n<<endl;//0.002865
cout<<m<<endl;//1000000
}
函数介绍
c++的头文件ctime中的库函数 clock()
提供了测试函数运行时间的方法:
-
clock()
返回类型为clock_t
类型 -
clock_t
实际为long
类型,即typedef long clock_t
-
clock()
函数,返回从 开启这个程序进程 到 程序中调用clock()函数 时之间的CPU
时钟计时单元(clock tick)数(挂钟时间),返回单位是毫秒 -
可以用常量
CLOCKS_PER_SEC
, 这个常量表示每一秒(per second)有多少个时钟计时单元