• 算法分析二:基础知识 数列求和方法以及递推方程的求解


    一.基础数学知识

     1.数列求和

    等差数列求和:Sn=n(a1+an)/2

    等比数列求和:

    无穷级数:等比求和 q(公比)<1,结果为 1/1-q.

    二.递归方程有关问题

    1.如何归纳一个算法

    要了解这个算法的步骤,再根据实际的时间进行归纳。

    例:hanoi塔,n!,合并排序算法,finbo。

    hanoi塔的具体算法:

    hanoi(int n,char from,char by,char to )

    {

    if(n==1) printf("%c->%c",from,to);//    T(n) : n==1 时 O(1)

    else                                             //               n>1时,T(n)= 2*T(n-1) +1 

    {

    hanoi(n-1,from,to,by);

    printf("%c->%c",from,to);

    hanoi(n-1,by,from,to);

    }

    }

    N!的算法:

    int jc(int n)

    {

    if(n==0) return 0;              //n==0时 O(1);

    else

    return n*jc(n-1);              //n>1时 T(n-1) + 1;                       T(n)=T(n-1)+1

    }

    Fibonacci:

    int Fibonacci(int n)

    {

    if (n==0) return 0;  //n==0, O(1)

    if(n==1) return 1;   //n==1,O(1)

    else 

    return Fibonacci(n-1)+Fibonacci(n-2); // n>1 T(n-1)+T(n-2)+O(1)                              T(n)=T(n-1)+T(n-2)+1;

    }

    2.递归方程的求解方法

    2.1 如果f(n)不为一阶,如下:

     可采用 差消法:先将其划为一阶再进行求解。如下:

     nT(n) = 2ΣT(i)+c1n*2

    n-1T(n-1) = 2ΣT(i-1)+c1(n-1)*2

    nT(n)-(n-1)T(n-1)=2T(n-1)+c1(n*2-(n-1)*2)

    T(n)/n+1=T(n-1)/n+c1/n+1

    利用迭代法:T(n) = Θ(nlogn)

    2.2如果F(n)为一阶,则求解方法如下:

    1.迭代法

    例:T(n)= 2*T(n-1) +1     (T(1)=0)

           T(n)=2*[2*T(n-2)+1]+1

           ......

           T(n)=2*(n-1)T(1)+2*0+2*1+....+2*(n-1)

           T(n)=2*n-1=O(2*n)

    2.母函数法

    例:   F(n)=F(n-1)+F(n-2)

              x*n-x*(n-1)-x*(n-2)=0 //同时除以x*(n-2)

             x*2-x-1=0

             x1=(1+根号下5 )/2,x2= -根号下5/2;

            F(n)=c1(x1)+c2(x2)

            F(n)=O(x1)*n

    3.递归树法

    例:

    T(n)=aT(n/b)+f(n)

     比较 n*logb a 与 a*i f(n/b*i) 可得到主定理

    4.主定理法

  • 相关阅读:
    Java知识点梳理——集合
    Java知识点梳理——装箱和拆箱
    Shiro RememberMe 1.2.4 反序列化漏洞详细复现
    哈希长度拓展攻击之De1CTF
    Discuz! ML RCE漏洞 getshell 复现
    Redis基于主从复制的RCE 4.x/5.x 复现
    WebLogic反序列化漏洞(CVE-2019-2725补丁绕过)
    【实战2】记一次获取远程桌面历程
    远程桌面远程代码执行漏洞(CVE-2019-0708)Poc
    【实战1】记一次提至administrator权限历程
  • 原文地址:https://www.cnblogs.com/dr-xsh/p/12501781.html
Copyright © 2020-2023  润新知