最近小弟做一个作业,是要比较两个算法的效率,所以要分别计算两个算法所用的时间,再进行比较。但不知道用什么方法。难道要用Timer实现?
请高手们,指点指点,谢谢!

解决方案 »

  1.   

    DWORD begin, end; 
    begin = GetTickCount(); 
    //你的程序 
    end = GetTickCount(); 
    DWORD timeUse = end - begin; //执行所用的毫秒数
      

  2.   

    在代码段开始的时候用GetTickCount记录一个ULONG数值
    在结束的时候再用GetTickCount记录一个值,两个值之差就大致是你的代码段执行时间了.
      

  3.   

    也可以:
    #include <time.h> 
    clock_t start, end; 
    start = clock(); 
    //你的程序 
    end = clock(); 
      

  4.   

    用高精度计数器:Details see MSDN
    QueryPerformanceFrequency 
    QueryPerformanceCounter
      

  5.   

    SYSTEMTIME st; \
    GetLocalTime(&st);
    用这个时间来计算吧,绝对精确,SYSTEMTIME 中有个wMilliseconds 
    应该够你用的了
      

  6.   

    DWORD tick = GetTickCount();
    .....
    tick = GetTickCount() - tick;
      

  7.   

    确实 GetTickCount()的精确度不够,用yjgx007的方法解决了
    QueryPerformanceFrequency 
    QueryPerformanceCounter
    谢谢大家的回答。