1

n=40 と入力したときに、次のフィボナッチ シリアル コードを実行するのにかかる実際の実行時間を知りたいです。

#include<stdio.h>

void printFibonacci(int);

int main(){

    int k,n;
    long int i=0,j=1,f;

    printf("Enter the range of the Fibonacci series: ");
    scanf("%d",&n);

    printf("Fibonacci Series: ");
    printf("%d %d ",0,1);
    printFibonacci(n);

    return 0;
}

void printFibonacci(int n){

    static long int first=0,second=1,sum;

    if(n>0){
         sum = first + second;
         first = second;
         second = sum;
         printf("%ld ",sum);
         printFibonacci(n-1);
    }

}
4

2 に答える 2

0

ここでは、アルゴリズム自体ではなく、ユーザーの入力時間が含まれるため、timeコマンドの使用はうまく機能しません。

Windowsでは、QueryPerformanceFrequencyとQueryPerformanceCounterを組み合わせて使用​​します。

#include <windows.h>

__int64 before, after, freq;
QueryPerformanceFrequency((LARGE_INTEGER *)&freq);
QueryPerformanceCounter((LARGE_INTEGER *)&before);

printFibonacci(n);

QueryPerformanceCounter((LARGE_INTEGER *)&after);

int elapsedMs = ((after - before) * 1000) / freq;

printf("Time taken: %dms\n", elapsedMs);

Linuxは、別の一連の機能を提供します。

#include <time.h>

int clock_getres(clockid_t clock_id, struct timespec *res);
int clock_gettime(clockid_t clock_id, struct timespec *tp);
int clock_settime(clockid_t clock_id, const struct timespec *tp);

これらの使用方法の例を次に示します。http ://www.qnx.com/developers/docs/6.5.0/index.jsp?topic = / com.qnx.doc.neutrino_lib_ref / c / clock_getres.html

于 2012-12-19T06:11:28.457 に答える
0

Linux では、「time」コマンドを使用してプログラムの実行時間を測定できます。

Windows では、Windows リソース キットから「timer.exe」をダウンロードするか、次の「トリック」のいずれかを使用できます。

于 2012-12-19T06:08:24.913 に答える