霍纳规则多项式计算如果使用朴素的多项式求值,时间复杂度为O(n*n),而是用了霍纳规则可以使用递归或者迭代来实现,时间复杂度是O(n),下面是源代码: /* * 实现霍纳规则的多项式计算时间复杂度为O(N) */ public class HuonaRule { public static void main(String args[]) { double data[]=new double[]{1.0,2,2,3,4}; double x=3; System.out.println(huonaFunction(data,x,data.length)); } /* * data为多项式的系数数组,x为值,n为系数数组的长度 * Y=a0+a1*X+a2*X^2+.....+an*X^n; * Y=a0+X(a1+X(a2+X(a3+X(...)))) */ public static double huonaFunction(double[] data,double x,int n) { double y=0; int i=n-1; while( i>=0 ) { y=x*y+data[i]; i--; } return y; } }