我正在尝试用C(矩阵乘法)测量一些活动,并注意到我应该做这样的事情:
clock_t start = clock();
sleep(3);
clock_t end = clock();
double elapsed_time = (end - start)/(double)CLOCKS_PER_SEC;
printf("Elapsed time: %.2f.\n", elapsed_time);
Run Code Online (Sandbox Code Playgroud)
输出是:
Elapsed time: 0.00.
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
我正在使用C,并且我有两个非负整数n和m(均> = 0,n <500)。我需要形成产品
n*(n+1)/2 + m
Run Code Online (Sandbox Code Playgroud)
这将需要数亿次,所以我想尽可能地优化它。我当前的实现是:
inline int func(const int n, const int m) { return ( (n*(n+1) >> 1) + m); }
Run Code Online (Sandbox Code Playgroud)
使用inline和>> 1进行除以2。还有其他方法可以加快计算速度吗?