# 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;
}

輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM