一个基础而奇怪的问题:算法运行加法、乘法、除法性能无差别?

一个基础而奇怪的问题:算法运行加法、乘法、除法性能无差别? 计算机原理分析认为:加法、乘法和除法的计算性能依次降低,但降低到什么程度?

编写C程序用30次百万数据计算来测试时间差异性,,代码如下:

#include <stdio.h>#include <stdlib.h>#include <time.h>#define N 1000000void add(float x[], long n) {float sum = 0;for(long i = 0; i < n; i++)sum += x[i];}void prod(float x[], long n) {float sum = 1;for(long i = 0; i < n; i++)sum *= (x[i]);}void div(float x[], long n) { for(long i = 0; i < n; i++) {x[i] /= 3.0;}}int main(){float x[N];clock_t t1 = clock();for(int i = 0; i < 50; i++)add(x, N);clock_t t2 = clock();printf("百万数据加法用时:%f 秒\n", (double)(t2 – t1)/ CLOCKS_PER_SEC);t1 = clock();for(int i = 0; i < 50; i++)prod(x, N);t2 = clock();printf("百万数据乘法用时:%f 秒\n", (double)(t2 – t1)/ CLOCKS_PER_SEC);t1 = clock();for(int i = 0; i < 50; i++)div(x, N);t2 = clock();printf("百万数据除法用时:%f 秒\n", (double)(t2 – t1)/ CLOCKS_PER_SEC);return 0;}结果如下:

百万数据加法用时:0.157051 秒百万数据乘法用时:0.184712 秒百万数据除法用时:0.161014 秒—————————————–百万数据加法用时:0.156099 秒百万数据乘法用时:0.184023 秒百万数据除法用时:0.159588 秒

说明了什么问题呢?

是否应该说算法中基本运算已无差别?

穿越茫茫人海,寻找属于我们的那一份宁静。

一个基础而奇怪的问题:算法运行加法、乘法、除法性能无差别?

相关文章:

你感兴趣的文章:

标签云: