最近做算法作业的时候遇到多项式求值的不同算法的运行时间的问题,我用C语言尝试了一下,在求X的i次方时想到一个问题,假如我调用pow(x,i)函数,那么和我自己重新写一个幂求值函数的运行时间是否有差别,如果有,那么这个算法最终的运行时间就不准确,因为它借助了库函数,可能使得程序执行效率更。
所以,今天就做了个小实验,来计算调用库函数和自己编写的完全一样的函数的运行时间。(学长说可能是编译器优化的原因,建议我反汇编看看二者代码是否一样,随后再试。)
我把库函数完全复制到main函数里来,只改了函数名,用clock()函数来计算时间,结果如下:
以下是源程序
#include "stdio.h"
#include "string.h"
#include "time.h"
char * __cdecl abc (
char * dest,
const char * source,
size_t count
)
{
char *start = dest;
while (count && (*dest++ = *source++)) /* copy string */
count--;
if (count)