[数据结构] 算法效率 以“计算多项式值”为例
来源:互联网 发布:幼儿园学英语软件 编辑:程序博客网 时间:2024/06/05 20:34
计算多项式值
计算下面多项式的数值:
- 途径1:通过循环来实现
f(x)=a0+a1x+⋅⋅⋅+an−1xn−1+anxn - 途径2:通过秦九韶算法来实现
f(x)=a0+x(a1+x(⋅⋅⋅(an−1+x(an))⋅⋅⋅))
两种不同的计算方法时间比较
#include <stdio.h>#include <math.h>#include <time.h>#define MAXN 10#define MAXK 1e7clock_t start, stop;double duration;double f1(int n, double a[], double x);//循环方法实现计算double f2(int n, double a[], double x);//秦九韶算法实现计算int main(){ int i; double a[MAXN]; for (i = 0; i <= MAXN ; i++) a[i] = (double)i; start = clock(); for (i = 0; i <= MAXK;i++) f1(MAXN - 1, a, 1.1); stop = clock(); duration = ((double)(stop - start)) / CLK_TCK / MAXK; printf("ticks1 = %f\n", (double)(stop - start)); printf("duration1 = %6.2e\n",duration); start = clock(); for (i = 0; i <= MAXK; i++) f2(MAXN - 1, a, 1.1); stop = clock(); duration = ((double)(stop - start)) / CLK_TCK / MAXK; printf("ticks2 = %f\n", (double)(stop - start)); printf("duration2 = %6.2e\n", duration);}double f1(int n, double a[], double x){ int i; double p = a[0]; for (i = 1; i <= n; i++) p += (a[i] * pow(x, i)); return p;}double f2(int n, double a[], double x){ int i; double p = a[n]; for (i = n; i > 0; i--) p = a[i - 1] + x*p; return p;}
运行结果
阅读全文
0 0
- [数据结构] 算法效率 以“计算多项式值”为例
- 数据结构笔记--1.1.3关于算法效率 计算多项式值
- 算法效率测试(以排序算法为例)
- 计算多项式值的秦九韶算法
- 数据结构与算法-实验1-多项式的计算:合并同类项、升幂排序、多项式加法、减法、乘法
- 数据结构-多项式计算(栈实现)
- pycnn以多项式为例的动态网络结构
- 多种方式计算多项式a0+a1*x+a2*x^2+a3*x^3+.......(计算效率与算法的重要性)
- 常见算法-多项式计算(1)
- 【算法导论】计算多项式实现
- 常见算法-多项式计算(1)
- 考研数据结构与算法之单链表多项式的计算(一)
- 考研数据结构与算法之单链表多项式的计算(二)
- 考研数据结构与算法之单链表多项式的计算(三)
- 数据结构基本算法:图的存储(以邻接链表为例)
- 一个将数据结构化的算法——以思维简图为例
- 算法实现计算一维多项式的值
- 计算多项式的值
- django中使用celery(一)
- VRRP
- 《Python爬虫开发与项目实战》总结 第一章
- SQL基础知识
- 软件构造 课堂笔记4
- [数据结构] 算法效率 以“计算多项式值”为例
- SQL基础练习一
- Python入门--模块的导入和使用
- 图片的上传和curl下载分析
- 516. Longest Palindromic Subsequence
- SQL练习二条件查询
- jvm数据区
- c语言字符串数组的两种表示方法
- Mysql数据库优化