sqrt和Hailstone

求平方根

class SqRoot{

  void calcRoot(double z){

    double x=1;double y=z/x;

    while(Math.abs(x-y)>1E-10)

    {x=0.5*(x+y); y=z/x;}

    System.out.println(x);

  }

}

 

Hailstone :n/2,3n+1 还不能证明有穷性

程序不等于算法,例如死循环和栈溢出等问题。

好的算法:正确,健壮(能处理不合法输入),可读,*效率(速度快,存储空间少)

问题的样本规模n,比较效率(速度)时,关注最坏情况。

图灵机模型和RAM模型:算法的运行时间-->算法需要执行的基本操作次数

Ω-下界  O-上界(最悲观)

不含转向(循环,调用,递归等),顺序执行的,O(1)

o(1) o(logn)高效解  

 

算术级数:与末项平方同阶  1+2+3+...+n=O(n^2)

幂方级数:比幂方高一阶  1^2+2^2+3^2+...+n^2=O(n^3)     1^4+2^4+3^4+...+n^4=O(n^5)

几何级数(a>1):与末项同阶 a^0+a^2+a^3+...+a^n=O(a^n)

收敛级数:O(1)

算法的复杂度可以用面积来表示

posted @ 2015-09-15 15:51  jack-xu  阅读(262)  评论(0编辑  收藏  举报