• 数学归纳法在数据结构与算法分析设计中的应用


    最简单和常见的数学归纳法是证明当n等于任意一个自然数时某命题成立。证明分下面两步:

    • 证明当 n= 1 时命题成立。
    • 假设 n=m 时命题成立,那么可以推导出在 n=m+1 时命题也成立。(m代表任意自然数)

    1. 图

    • G=(V, E) 为一个有向图或无向图,假定 BFS 以给定结点 sV 作为源节点在图 G 上运行。则在 BFS 终结时,对于每个结点 vV,BFS 计算得到的 v.d 满足 v.dδ(s,v)δ(s,v)sv 的最短路径,v.d:以 BFS 的方式从源点出发到 v 之间的距离)。

      以数学归纳法的方式进行证明,此外还需理解的细节即是,BFS 的方式需借助先进先出的队列,其最核心的两个操作,enqueue 与 dequeue。我们的归纳假设是:对于所有的结点 vVv.dδ(s,v)

      enqueue(G, u),从结点 u 进行邻接表搜索时发现了结点 v(u 可以到 v,根据三角不等式性,δ(s,v)δ(s,u)+1),根据归纳法假设有 u.dδ(s,u),根据符号 .d 的定义知,v.d=u.d+1,因此:

      v.d=u.d+1δ(s,u)+1δ(s,v)

    • 证明:任意连通无向图 G=(V,E) 满足 |E||V|1

      • 当只有一个顶点时,|E|=0,|V|=1,显然成立;
      • 因为是连通的,故取出一个顶点(|V|=|V|1),以及与之相连的边(不只一个 |E|1+|E|),构成一个新的子图 G=(V,E),根据数学归纳法,则有:

    |E|1+|E||E|1+|E||V|1��+1|E|1+|E||V|+1��1|E|1+|E||V|1|E||V|1

  • 相关阅读:
    Mitmproxy使用教程for mac
    Flink重启策略
    Flink中的Time
    Flink的分布式缓存
    8-Flink中的窗口
    10-Flink集群的高可用(搭建篇补充)
    Flink-Kafka-Connector Flink结合Kafka实战
    15-Flink实战项目之实时热销排行
    16-Flink-Redis-Sink
    17-Flink消费Kafka写入Mysql
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421353.html
Copyright © 2020-2023  润新知