程式執行過程計時
阿新 • • 發佈:2018-12-12
在分析一個程式演算法時間複雜度時,可以使用統計程式或程式片段的計算時間有助於理解程式性質。許多語言或系統都提供了內部計時功能。有關c語言的如下:
有關函式在time.h標頭檔案中,在程式頭部寫成:#include<time.h>
在程式裡計時,通常寫表示式:clock()/CLOCKS_PER_SEC,得到從程式開始到表示式求值時所經歷的秒數。
下面通過斐波那契數列來展示使用:
#include<stdio.h> #include<time.h> long long fib (int n){ return n<=2?1:fib(n-1)+fib(n-2); } long long fib1(int n){ long long f1=1,f2=1,f3; if(n<=2) return 1; f3=f2+f1; for(int i=3;i<n;i++) { f1=f2; f2=f3; f3=f1+f2; } return f3; } int main() { double x; for(int n=45;n<=48;n++) { x=clock()/CLOCKS_PER_SEC; printf("fib(%d)=%I64d\t",n,fib(n)); x=clock()/CLOCKS_PER_SEC-x; printf("Timing fib(%d):%f.\n",n,x); x=clock()/CLOCKS_PER_SEC; printf("fib1(%d)=%I64d\t",n,fib1(n)); x=clock()/CLOCKS_PER_SEC-x; printf("Timing fib1(%d):%f.\n\n",n,x); } return 0; }