# C/C++算法编程输出程序运行时间

问题

使用C/C++进行算法编程时,如何输出程序的运行时间问题;

使用IDE为DEV-C++;

解决

考虑到C/C++兼容性问题,这里使用的是C99的方法;

#include<stdio.h>
#include<time>
printf("Time used = %.2f\n", (double)clock() / CLOCKS_PER_SEC);
  • printf输出的时间是以秒为单位;
  • 常数CLOCKS_PER_SEC是和操作系统相关,不要直接使用clock()获取的运行时间返回值,应除以CLOCKS_PER_SEC

样例

#include <iostream>
#include<time.h>
 
int main(int argc, char** argv) {
	
	for (int i = 0; i < 214748280; i++) {
    	i++;
	}
	for (int i = 0; i < 214748280; i++) {
    	i++;
	}
	
	// 输出运行时间; 
	std::cout << "The run time is: " <<(double)clock() / CLOCKS_PER_SEC << "s" << std::endl;
	return 0;
}

输出:

如果是希望得到程序段运行的时间怎么办?

样例

#include <iostream>

#include<time.h>
 
int main(int argc, char** argv) {
	double startTime1 = clock();//1计时开始
	for (int i = 0; i < 214748280; i++) {
    	i++;
	}
	double endTime1 = clock();//1计时结束
	
	double startTime2 = clock();//2计时开始
	for (int i = 0; i < 214748280; i++) {
    	i++;
	}
	double endTime2 = clock();//2计时结束
	
	// 输出1运行时间; 
	std::cout << "The run time is: " <<(double)(endTime1 - startTime1) / CLOCKS_PER_SEC << "s" << std::endl;
	
	// 输出2运行时间; 
	std::cout << "The run time is: " <<(double)(endTime2 - startTime2) / CLOCKS_PER_SEC << "s" << std::endl;
	return 0;
}

输出

猜你喜欢

转载自www.cnblogs.com/apebro/p/12581417.html