『壹』 c語言 計算程序運行時間
#include <stdio.h>
#include <time.h>
#define N 10000 /*這個數字可以自己改,如果時間太長結果不出來你就改小點*/
void f()
{
int i, j, k;
for ( i = 0; i < N; ++i )
for ( j = 0; j < N; ++j )
for ( k = 0; k < N; ++k )
;
}
int main()
{
clock_t begin, ration;
begin = clock();
f();
ration = clock() - begin;
printf( "函數f()的運行時間大約為:%dms\n", ration*1000/CLOCKS_PER_SEC );
}
『貳』 java如何計算程序運行時間
long begin = System.currentTimeMillis(); // 這段代碼放在程序執行前
long end = System.currentTimeMillis() - begin; // 這段代碼放在程序執行後專
System.out.println("耗時:" + end + "毫秒屬");
『叄』 如何計算程序的運行時間,並精確到微秒
1 需要取得系統精確時鍾函數:
1)對於一般的實時控制,使用GetTickCount()函數就可以滿足精度要求,但要進一步提高計時精度,就要採用 QueryPerformanceFrequency()函數和QueryPerformanceCounter()函數。
2)這兩個函數是VC提供的僅供 Windows 9X使用的高精度時間函數,並要求計算機從硬體上支持高精度計時器。
3) QueryPerformanceFrequency()函數和 QueryPerformanceCounter()函數的原型為:
BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
BOOL QueryPerformanceCounter(LARGE_INTEGER *lpCount);
數據類型LARGE—INTEGER既可以是一個作為8位元組長的整型數,也可以是作為兩個4位元組長的整型數的聯合結構,其具體用法根據編譯器是否支持64位而定。該類型的定義如下:
typedef union _LARGE_INTEGER
{
struct
{
DWORD LowPart; // 4位元組整型數
LONG HighPart; // 4位元組整型數
};
LONGLONG QuadPart;
// 8位元組整型數
} LARGE_INTEGER;
4)在進行計時之前,應該先調用QueryPerformanceFrequency()函數獲得機器內部計時器的時鍾頻率。筆者在三種PentiumⅡ機器上使用該函數,得到的時鍾頻率都是1193180Hz。接著,筆者在需要嚴格計時的事件發生之前和發生之後分別調用QueryPerformanceCounter()函數,利用兩次獲得的計數之差和時鍾頻率,就可以計算出事件經歷的精確時間。
以下程序是用來測試函數Sleep(100)的精確持續時間。
LARGE—INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
// 獲得計數器的時鍾頻率
dfFreq = (double)litmp.QuadPart;
QueryPerformanceCounter(&litmp);
// 獲得初始值
QPart1 = litmp.QuadPart;
Sleep(100) ;
QueryPerformanceCounter(&litmp);
// 獲得終止值
QPart2 = litmp.QuadPart;
dfMinus = (double)(QPart2 - QPart1);
dfTim = dfMinus / dfFreq;
// 獲得對應的時間值
執行上面程序,得到的結果為dfTim=0.097143767076216(秒)。細心的讀者會發現,每次執行的結果都不一樣,存在一定的差別,這是由於Sleep()自身的誤差所致。
『肆』 在C語言中怎樣報告一個演算法的運行時間
#include <time.h> //頭文件
void main()
{
clock_t t1,t2,t3,t4;
t1=clock();
QuickSort(data,N);
t2=clock();
cout<<"快速排序用的時間:"<<t2-t1<<"毫秒"<<endl;
t3=clock();
Bubble(data);
t4=clock();
cout<<"冒泡排序用的時間:"<<t4-t3<<"毫秒"<<endl;
}
這是我在做快排和冒泡比較時用到的一段代碼,看完你應該很清楚了O(∩_∩)O~
『伍』 關於怎樣計算程序運行時間
先在運行前記錄下系統時間,等運行完成後,記錄下結束時間,一對比,就可以得到程序運行的時間。
『陸』 如何計算程序運行時間
可以啊,在程序開始用一變數存下當前系統的時間,在程序結束後再存下系統的時間,最後兩個時間相減就得出結果了。這題我們當時做過。
『柒』 如何計算程序運行時間JAVA
main入口時
date
d
=
new
date()
所有運算結束時
date
d1
=
new
date();
long
hm
=
d1.gettime()-d.gettime()
//取得相差毫秒數
之後輸出
hm/1000
輸出的是運行了多少秒(分鍾
小時什麼的自己應該會換算了吧?)
如果想復雜一點
可以寫一個監視線程
隨main啟動
同樣記錄一個啟動時間
判斷main線程被終止時記錄程序停止時間
隨後演算法同上
『捌』 C++實現計算程序運行時間
用高精度計時器
#include <iostream>
#include <windows.h>
using namespace std ;
int main(void)
{
LARGE_INTEGER BegainTime ;
LARGE_INTEGER EndTime ;
LARGE_INTEGER Frequency ;
QueryPerformanceFrequency(&Frequency);
QueryPerformanceCounter(&BegainTime) ;
//要測試的代碼放在這里
QueryPerformanceCounter(&EndTime) ;
cout << ( EndTime.QuadPart - BegainTime.QuadPart )*1000 / Frequency.QuadPart ;
system("pause") ;
return 0 ;
}
『玖』 程序的運行時間
泛型編程的作用???
知道這個, 那麼你肯定會知道函數調用比一般語句花費的時間多!!!
下面這個函數是遞歸函數, 不是有許多書說許多入門書籍在誤人子弟(不是我說的哦,我沒這個水平)嗎? 為什麼??
他們說的是 遞歸是個好東西; 但是不是用來計算階乘和facoby等!!!
非常的慢, 而且增加堆棧的深度 容易出錯!
能用循環語句來實現的是好的 沒有調用函數的開銷大!!!
循環-有些編譯器還可能實現優化. 因此比較快!
<<代碼大全>> 可能會把這個問題說得非常精闢而且清楚!! 有時間可以去看看
int elevator(int n)
{
if(n==0||n==1)
return 1;
else
return elevator(n-1)+elevator(n-2);
}
『拾』 怎樣計算程序的執行時間(C語言中)
gettime可以得到毫秒級的時間
#include <stdio.h>
#include <dos.h>
int main(void)
{
struct time t;
gettime(&t);
printf("The current time is: %2d:%02d:%02d.%02d\n",
t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);
return 0;
}