数据结构(三)算法

数据结构(三)算法

要点:解决问题方法的效率,跟算法的巧妙程度有关

思考:如何让算法更巧妙

01 如何空间的利用效率

参考:实现多项式的两种算法

java 复制代码
public static double f1(int n,double[] a,double x) {
		double rs=a[0];
		for (int i = 1; i < a.length; i++) {
			rs+=a[i]*Math.pow(x, i);
		}
		return rs;
	}
	
public static double f2(int n,double[] a,double x) {
		double rs=a[n];
		for (int i = n; i >0; i--) {
			rs=a[i-1]+rs*x;
		}
		return rs;
	}
	

02 案例:实现多项式的两种算法

1.循环相加

  • 一般的解决方式,直观的写法
java 复制代码
public static double f1(int n,double[] a,double x) {
		double rs=a[0];
		for (int i = 1; i < a.length; i++) {
			rs+=a[i]*Math.pow(x, i);
		}
		return rs;
	}

2.合并同类型相加

  • 不使用冥函数,仅用加减法
java 复制代码
public static double f2(int n,double[] a,double x) {
		double rs=a[n];
		for (int i = n; i >0; i--) {
			rs=a[i-1]+rs*x;
		}
		return rs;
	}

二者对比

  • 但x为1.1,数组a为1到9时,执行10万次,第一个函数的执行时间是第二个函数的1000倍
  • 但x为1.1,数组a为1到9时,执行100万次,第一个函数的执行时间是第二个函数的1万倍

03 我的总结

  • 提高解决问题方法的效率,要提高算法的巧妙程度,减少计算量,用更多的加减法代替乘除法
相关推荐
一只码代码的章鱼2 分钟前
数据结构与算法-图论-复习1(单源最短路,全源最短路,最小生成树)
c++·算法·图论
什码情况3 分钟前
整数编码 - 华为OD统一考试(A卷、C++)
数据结构·c++·算法·华为od
int型码农11 分钟前
数据结构第六章(一) -图
c语言·数据结构·算法
Tony沈哲35 分钟前
图像编辑器 Monica 之重构滤镜模块、云端部署模型
算法
得物技术42 分钟前
DPP推荐引擎架构升级演进之路|得物技术
java·算法·ab测试
Psycho_MrZhang1 小时前
模型量化和剪枝
人工智能·算法·剪枝
梭七y1 小时前
【力扣hot100题】(075)数据流的中位数
算法·leetcode·职场和发展
梭七y1 小时前
【力扣hot100题】(073)数组中的第K个最大元素
算法·leetcode·职场和发展
青椒大仙KI111 小时前
25/4/9 算法笔记 DBGAN+强化学习+迁移学习实现青光眼图像去模糊1
人工智能·笔记·学习·算法·迁移学习
weixin_428498491 小时前
Fortran 中读取 MATLAB 生成的数据文件
算法