热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

递归树求解递归方程

首先了解一下这个递归式T(n)4T(n2)n是什么意思:4表示我们将一个问题分解为4个子问题n2表示每个子问题的规模是原问题的12n表示合并需要的额外计算时间方法一

在这里插入图片描述




首先了解一下这个递归式 T(n)=4T(n/2)+n 是什么意思:


  • 4表示我们将一个问题分解为 4 个子问题
  • n/2表示每个子问题的规模是原问题的 1/2
  • n表示合并需要的额外计算时间



方法一可用主定理【Master定理】


主定理【Master定理】提供了分治方法带来的递归表达式的渐进复杂度分析。

将规模为 n 的问题通过分治,得到 a 个规模为 n/b 的问题,每次递归带来的额外计算为 c(n^d)

即 T(n)=a(n/b)+c(nd)

  • 若 a=bd , T(n)=O(ndlog(n))

  • 若 ad , T(n)=O(nd)

  • 若a>bd , T(n)=O(nlogb(a))


该题 a=4,b=2,c(nd)=n → d=1

a>bd 【4>21

所以 T(n)=O(nlogb(a)) 【T(n)=O(nlog2(4)) 】

=O(n2)




方法二:递归树


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


根据上图,首先画出递归式 T(n)=4T(n/2)+n 的递归树:
在这里插入图片描述


  • 该树长度为 log2n

    • 因为原本的问题规模为 n ,到了树的最底层,为 1 了,也就是说,每次往下一层,规模变为 1/2,假设它变成 i 个节点,则 n / 2i = 1 ,即 n = 2i ,所以 i = log2n

  • 图中所有节点之和为:


等比求和公式
n+2n+4n+8n+16n+…(2i)n = (1+2+4+…+2i)n
根据等比数列求和公式可得:
1*(1-2i)/(1-2) = 2i-1
因为i=log2n
所以2^(log2n) - 1

所以图中所有节点之和为:n(n-1)=n2-n
所以时间复杂度为O(n2)



推荐阅读
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • 本文详细介绍了如何规划和部署一个高可用的Etcd集群,包括主机配置、软件安装、防火墙设置及集群健康检查等内容。通过合理的硬件配置和网络规划,确保Etcd集群在生产环境中的稳定运行。 ... [详细]
  • 配置多VLAN环境下的透明SQUID代理
    本文介绍如何在包含多个VLAN的网络环境中配置SQUID作为透明网关。网络拓扑包括Cisco 3750交换机、PANABIT防火墙和SQUID服务器,所有设备均部署在ESXi虚拟化平台上。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • 在安装Oracle 11g时,CentOS 6.5系统提示交换空间不足。本文详细介绍了如何通过两种方法增加交换空间,并提供了具体步骤和命令,帮助用户解决这一问题。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 在Fedora 31上部署PostgreSQL 12
    本文详细介绍如何在Fedora 31操作系统上安装和配置PostgreSQL 12数据库。包括环境准备、安装步骤、配置优化以及安全设置,确保数据库能够稳定运行并提供高效的性能。 ... [详细]
  • 探讨在开发、学习和实验过程中,使用 VMware 和 Docker 的优劣,帮助用户根据具体需求做出最佳选择。 ... [详细]
author-avatar
Robin Lu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有