java实现的霍纳规则的多项式计算
霍纳规则多项式计算如果使用朴素的多项式求值,时间复杂度为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;
}
}
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Ha ......
package thread;
class ThreadTest4 implements Runnable{
private boolean flag=true;
public void stopMe(){
flag=false;
}
public void run() {
while (flag){
System.out.println(Thread.currentThread().getName()+" is running ");
&nbs ......
下面使用一个java实现的迭代版的递归版的插入排序。
package sort;
import java.util.Date;
import java.util.Random;
/*
* 插入排序
*/
public class InsertSort{
public static void main(String args[])
{
int len = 20;
Date date = new Date();
Random random = new Random(date.getSeconds()); ......
下面是用java实现的选择排序,每次从数组中选取最小的值:
import java.util.Date;
import java.util.Random;
/*
* 选择排序
*/
public class SelectSort {
public static void main(String args[])
{
int len = 40;
Date date = new Date();
Random random = new Random(date.getSeconds());
int ......