数据结构(三)算法

数据结构(三)算法

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

思考:如何让算法更巧妙

01 如何空间的利用效率

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

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.循环相加

  • 一般的解决方式,直观的写法
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.合并同类型相加

  • 不使用冥函数,仅用加减法
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 我的总结

  • 提高解决问题方法的效率,要提高算法的巧妙程度,减少计算量,用更多的加减法代替乘除法

相关推荐

  1. 数据结构算法

    2024-05-09 23:12:05       31 阅读
  2. 算法集训】基础数据结构:十、哈希表

    2024-05-09 23:12:05       66 阅读
  3. 数据结构要素

    2024-05-09 23:12:05       41 阅读
  4. 数据结构)------栈

    2024-05-09 23:12:05       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-09 23:12:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-09 23:12:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-09 23:12:05       82 阅读
  4. Python语言-面向对象

    2024-05-09 23:12:05       91 阅读

热门阅读

  1. 为什么 IP 地址通常以 192.168 开头?

    2024-05-09 23:12:05       34 阅读
  2. vue3引入vant完整步骤

    2024-05-09 23:12:05       34 阅读
  3. Mybatis Plus ActiveRecord 模式

    2024-05-09 23:12:05       27 阅读
  4. Linux-笔记 Makefile简单入门

    2024-05-09 23:12:05       28 阅读
  5. 双指针 Leetcode 151 反转字符串中的单词

    2024-05-09 23:12:05       33 阅读