数据结构(三)算法

数据结构(三)算法

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

思考:如何让算法更巧妙

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 我的总结

  • 提高解决问题方法的效率,要提高算法的巧妙程度,减少计算量,用更多的加减法代替乘除法
相关推荐
-dzk-35 分钟前
【动态规划】LC 118.杨辉三角
算法·动态规划
恣逍信点39 分钟前
《凌微经》静态自悖——变化之自因
人工智能·科技·算法·机器学习·业界资讯·拓扑学·哲学
吃着火锅x唱着歌1 小时前
LeetCode 3885.设计事件管理器
算法·leetcode·职场和发展
土司大王1 小时前
LeetCode hto100——字母异位词分组
java·算法·leetcode
Eloudy1 小时前
预词力:LLM 的唯一形式化能力
人工智能·算法·agent
依然鸣2 小时前
PTA团体程序设计天梯赛L1真题讲解L1-085-088
数据结构·c++·经验分享·算法·深度优先·pat考试
听取WA声一片(无恶意)2 小时前
CSP-J/S 初赛图论完全讲义
算法·csp-s初赛·csp-j初赛
Brilliantwxx2 小时前
【算法从零到千】【51-54】逆序对(分治+递归算法)
数据结构·算法·排序算法
小星星闪亮登场3 小时前
2026河南萌新联赛第四场--南阳理工学院
数据结构·算法·贪心算法·动态规划·哈希算法·广度优先
土司大王3 小时前
LeetCode hot100——两数之和
数据结构·算法·leetcode