程序运行的时间复杂度在很多时候被用来衡量一个程序的可行性。除了宏观计算O(n)外,简单的程序自己也能提供其运行的时长。
     1.简单的方法是,在C/C++中,简单的就是,time.h,中的函数 clock_t 类型的变量接受 clock()函数的赋值,eg.

     #include
#include
#include
int main()

{

    clock_t start,finish;
    int sum=0,i;
    start=clock();
    for(i=3;i<1000;i++)
        if(i%3==0||i%5==0)
            sum+=i;
    printf("%dn",sum);
    finish=clock();
    printf("lasts for %llf secondsn",(long  double)(finish-start)/CLOCKS_PER_SEC);
}

2,这种方法精确到1E-6,利用 sys/time.h 中的 gettimeofday() 函数获取当前时钟,它精确到ms,普遍的用法是:
#include
#include
double getTimeval()
{
    struct timeval stTimeval;
    gettimeofday(&stTimeval,NULL);
    return stTimeval.tv_sec+(double)stTimeval.tv_usec*1E-6;
}
int main()
{
    double T1,T2;
    long long int i,sum=0;
    long long int fa[100000]={0};
    T1=getTimeval();
    fa[0]=fa[1]=1;
    for(i=1;fa[i+1]<4000000;i++)
    {
        fa[i+2]=fa[i+1]+fa[i];
        if(fa[i+2]%2==0)
            sum+=fa[i+2];
    }
    printf("%lldn",sum);
    T2=getTimeval();
    printf("Time result tested by gettimeofday= %10.30fn",
            (double)(T2-T1));
    return 0;
}

3,通过测试另外的时间调用结果:

#include
#include
#include
#include
#include

#define TEST_BY_CLOCK   (char)(0x00)
#define TEST_BY_TIMES   (char)(0x01)
#define TEST_BY_GETTIMEOFDAY (char)(0x02)
#define TEST_BY_GETRUSAGE  (char)(0x03)
#define TEST_METHOD    (TEST_BY_GETTIMEOFDAY)

#define COORDINATION_X   (int)(1024)
#define COORDINATION_Y   (int)(1024)

static int g_Matrix[COORDINATION_X][COORDINATION_Y];

double getTimeval()
{
     struct rusage stRusage;
      struct timeval stTimeval;
       if (TEST_METHOD == TEST_BY_GETTIMEOFDAY) {
             gettimeofday(&stTimeval, NULL);
              } else if (TEST_METHOD == TEST_BY_GETRUSAGE) {
                    getrusage(RUSAGE_SELF, &stRusage);
                      stTimeval = stRusage.ru_utime;
                       }
        return stTimeval.tv_sec + (double)stTimeval.tv_usec*1E-6;
}

int main()
{
     int i, j;
      int n = 0;
       clock_t clockT1, clockT2;
        double doubleT1, doubleT2;

         if (TEST_METHOD == TEST_BY_CLOCK) {
               clockT1 = clock();
                } else if (TEST_METHOD == TEST_BY_TIMES) {
                      times(&clockT1);
                       } else if (TEST_METHOD == TEST_BY_GETTIMEOFDAY) {
                             doubleT1 = getTimeval();
                              } else if (TEST_METHOD == TEST_BY_GETRUSAGE) {
                                    doubleT1 = getTimeval();
                                     }

          for (i = 0; i < COORDINATION_X; i++) {
                for (j = 0; j < COORDINATION_Y; j++) {
                       g_Matrix[i][j] = i * j;
                         }
                 }

           if (TEST_METHOD == TEST_BY_CLOCK) {
                 clockT2 = clock();
                   printf("Time result tested by clock = %10.30fn",
                               (double)(clockT2 - clockT1)/CLOCKS_PER_SEC);
            } else if (TEST_METHOD == TEST_BY_TIMES) {
                       times(&clockT2);
                        printf("Time result tested by times = %10.30fn",
                         (double)(clockT2 - clockT1)/sysconf(_SC_CLK_TCK));
           } else if (TEST_METHOD == TEST_BY_GETTIMEOFDAY) {
                     doubleT2 = getTimeval();
                         printf("Time result tested by gettimeofday = %10.30fn",
                               (double)(doubleT2 - doubleT1));
          } else if (TEST_METHOD == TEST_BY_GETRUSAGE) {
                       doubleT2 = getTimeval();
                          printf("Time result tested by getrusage = %10.70fn",
                            (double)(doubleT2 - doubleT1));
           }

               return 0;
}

       比较后得出结果,对精度要求不高或程序运行时间比较长的情况下,clock()函数是个不错的选择,而对于精度要求较高时,gettimeofday() , getusage() 的结果似乎差不多。这就根据自己的爱好去使用了!
</div>