C语言学习之时钟函数clock()函数
生活随笔
收集整理的這篇文章主要介紹了
C语言学习之时钟函数clock()函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// nomial.cpp : Defines the entry point for the console application.
//多項式求解
//計時函數
//clock():從捕捉程序開始運行到clock()函數被調用所耗費的時間,這個時間單位是
//clock tick,即”時鐘打點“,常數CLK_TCK:機器時鐘每秒所走的時鐘打點數
//包含頭文件<time.h>
//fx = a+x(b+x(...))
#include "stdafx.h" #include <stdlib.h> #include <math.h>//for pow() #include <time.h>#define MAXN 10//多項式最大項數 #define MAXK 1e7//被測函數最大重復調用次數,注意指數為一e7,不是小寫的L,因為一次計算運行太快,可能不足一個時鐘計數單位clock_t start, stop;//clock_t是clock()函數返回類型 double duration;//笨方法 double Function1(int n, double a[], double x) {int i;double p = a[0];for (i = 1; i < n; i++)p += (a[i] * pow(x, i));//指數次方共相乘i-1次,再乘以a[i],所以共相乘i次,所以乘法的總次數為(1+2+...+n)return p; }double Function2(int n, double a[], double x) {int i;double p = a[n];for (i = n; i > 0; i--)p = a[i - 1] + x*p;//共做了n次乘法return p; }int main() {int i;double a[MAXN];//存儲多項式的系數for (i = 0; i < MAXN; i++)a[i] = (double)i;//可以將以下語句設計成一個函數調用start = clock();//開始計時for(i = 0;i < MAXK;i++)Function1(MAXN-1,a,1.1);stop = clock();//停止計時duration = ((double)(stop - start) / CLK_TCK/MAXK);printf("tick1 = %f\n", (double)(stop - start));printf("duration1 = %6.2e\n", duration);start = clock();//開始計時for (i = 0; i < MAXK; i++)Function1(MAXN - 1, a, 1.1);Function2(MAXN - 1, a, 1.1);stop = clock();//停止計時duration = ((double)(stop - start) / CLK_TCK/MAXK);printf("tick2 = %f\n", (double)(stop - start));printf("duration2 = %6.2e\n", duration);system("pause");return 0; }
//多項式求解
//計時函數
//clock():從捕捉程序開始運行到clock()函數被調用所耗費的時間,這個時間單位是
//clock tick,即”時鐘打點“,常數CLK_TCK:機器時鐘每秒所走的時鐘打點數
//包含頭文件<time.h>
//fx = a+x(b+x(...))
#include "stdafx.h" #include <stdlib.h> #include <math.h>//for pow() #include <time.h>#define MAXN 10//多項式最大項數 #define MAXK 1e7//被測函數最大重復調用次數,注意指數為一e7,不是小寫的L,因為一次計算運行太快,可能不足一個時鐘計數單位clock_t start, stop;//clock_t是clock()函數返回類型 double duration;//笨方法 double Function1(int n, double a[], double x) {int i;double p = a[0];for (i = 1; i < n; i++)p += (a[i] * pow(x, i));//指數次方共相乘i-1次,再乘以a[i],所以共相乘i次,所以乘法的總次數為(1+2+...+n)return p; }double Function2(int n, double a[], double x) {int i;double p = a[n];for (i = n; i > 0; i--)p = a[i - 1] + x*p;//共做了n次乘法return p; }int main() {int i;double a[MAXN];//存儲多項式的系數for (i = 0; i < MAXN; i++)a[i] = (double)i;//可以將以下語句設計成一個函數調用start = clock();//開始計時for(i = 0;i < MAXK;i++)Function1(MAXN-1,a,1.1);stop = clock();//停止計時duration = ((double)(stop - start) / CLK_TCK/MAXK);printf("tick1 = %f\n", (double)(stop - start));printf("duration1 = %6.2e\n", duration);start = clock();//開始計時for (i = 0; i < MAXK; i++)Function1(MAXN - 1, a, 1.1);Function2(MAXN - 1, a, 1.1);stop = clock();//停止計時duration = ((double)(stop - start) / CLK_TCK/MAXK);printf("tick2 = %f\n", (double)(stop - start));printf("duration2 = %6.2e\n", duration);system("pause");return 0; }
總結
以上是生活随笔為你收集整理的C语言学习之时钟函数clock()函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenGL中的轨迹球问题
- 下一篇: 表之顺序结构和链式结构