首页 > 其他分享 >主定理(时间复杂度计算方式)

主定理(时间复杂度计算方式)

时间:2023-09-16 09:01:59浏览次数:32  
标签:log 4T dlog 定理 计算 nlog 复杂度

Master Theorem

用途

一种用于计算递归时间复杂度的定理。
比如对于一个时间复杂度递推式:\(T(n)=T(n/2)+O(n)\),
可以浅显地看出它的复杂度为\(O(nlog_2n)\),因为我们这样子的递归写了太多次了。
但我们可以看到\(T(n)=4T(n/2)+n\),
它的复杂度是多少?也是\(O(nlog_2n)\)?
当在问出这种问题时,我们就会有点束手无策。
所以我们就需要一个定理来把这种问题解决。

定理

对于一个时间复杂度递推式的一般式\(T(n)=aT(n/b)+O(n^d)\):
\(T(n)=\begin{cases} O(n^d) & d>log_b^a \\ O(n^dlog_2^n) & d=log_b^a \\ O(n^{log_b^a}) & d<log_b^a \end{cases}\)

应用

回到一开始的例子:\(T(n)=4T(n/2)+n\),
这时\(a=4,b=2,d=1\),
所以\(log_b^a=2>d\),则\(T(n)=O(n^{log_b^a})=O(n^2)\).
这个故事告诉我们,
像二分这样的形式不要在里面套太大的常数,
不然真的会爆炸。

我们在给出一个例子:\(T(n)=4T(n/2)+n^2\)
这时\(a=4,b=2,d=2\),
所以\(log_b^a=2=d\),则\(T(n)=O(n^dlog_2^n)=O(n^2log_2^n)\).

还有一种:\(T(n)=4T(n/2)+n^3\)
这时\(a=4,b=2,d=3\),
所以\(log_b^a=2<d\),则\(T(n)=O(n^d)=O(n^3)\).

总的来说就是谁大跟谁,等大加\(log_2^n\).

THE END.

标签:log,4T,dlog,定理,计算,nlog,复杂度
From: https://www.cnblogs.com/1n87/p/17706271.html

相关文章

  • VB.net报错未在本地计算机上注册“icrosoft.ACE.OLEDB.12.0”提供程序
    1、问题:通过EXCEL上传数据报错:未在本地计算机上注册“icrosoft.ACE.OLEDB.12.0”提供程序原因是电脑office版本和VB.net程序选择的运行有关系处理:先查看office是X86还是64位如果是64位,在VB.NET中更改编译CPU选择X64 方法2:如果是X86,把office重新安装32位版本注意:安装office......
  • 计算机网络散记 -- 关于局域网内两台设备互ping不了
    背景由于个人项目练习,所以固定两台设备的静态ip地址,window的ip地址为192.168.33.107,linux的ip地址为192.168.33.106。家里的wifi也有两个(其中一个为拓展器分发)【wifi名分别为“家用wifi”和“家用wifi-加强版”】。本来两台设备之间的通信是没问题的,就算切换了wifi,只要是同......
  • 在工作流引擎设计领域,是否自动计算未来的处理人的设计模式有哪些?
    概述流程的第一个节点发送下去的时候,就要把以后所有节点的处理人计算出来,能清楚的知道每个节点都是那些人处理.计算未来处理人包括抄送节点、与待办节点.默认的模式为:每个节点发送的时候即使计算,就是不计算未来处理人.流程设计特征.流程的所有节点的接受人不能是主管选择的,只能......
  • 计算机基础
    计算机基础1、Python是什么?Python是一门编程语言。  语言是一种事物与另外一种事物沟通的介质。  所以说编程语言就是程序员与计算机共同的介质。编程语言还有其他分类:2、什么是编程?  就是程序员用计算机所能理解的表达方式(编程语言)把自己的思维逻辑写下来。......
  • 基于python的医疗问诊服务数据采集及可视化分析系统-计算机毕业设计源码+LW文档
    选题的目的、理论与实践意义:选题的目的:随着“互联网+”概念的兴起,有很多传统行业获得了新的发展契机。根据数据统计,用户足不出户就能享受优质的医疗服务,看病贵和看病难这样的问题通过线上医疗问诊得到有效的缓解。系统通过对网站你用户及为平台提供服务的医生,医疗服务数据,评价信息......
  • 失物招领系统的设计与实现-计算机毕业设计源码+LW文档
    一、课题背景 随着互联网的飞速发展,学校也进入了信息化时代。校园中大学生丢失物品的现象较为普遍,虽然目前国内有一些网上校园寻物平台或者是QQ群之类的,但是都不是很成熟,使得失主不能及时甚至找不到失物,给生活带来了极大的不便。通过互联网为在校师生搭建一个发布信息的平台,可以......
  • 生鲜电商系统的设计与实现-计算机毕业设计源码+LW文档
    一、研究的背景意义随着计算机信息技术和网络化进程的发展,电子商务逐渐成熟,通过信息技术手段把传统的销售活动转移到网络中来,打破了地区之间的限制,使得企业或者个人都可以参与进来。电子商务是一场信息革命,改变了人们的思维,对生产、生活都产生了非常大的影响。网上销售凭借便捷的......
  • 基于HTML+数据库的农产品销售系统-计算机毕业设计源码+LW文档
    摘 要随着互联网技术的发展,传统的农产品销售迎来了机遇,我国是个农业大国,如何推广农产品的销售是农产品企业非常关注的事情。随着电子商务多元化的发展,各地方特产、农产品逐渐转移到线上销售。在互联网的帮助下,带动农产品企业打开销路,促进农产品可持续发展。同时,通过农产品销售系......
  • 基于java的在线考试系统的设计-计算机毕业设计源码+LW文档
    摘要随着信息技术的发展,管理系统越来越成熟,各种企事业单位使用各种类型的管理系统来提高工作效率,从而降低手工操作的弊端。我国政府一直以来都非常重视高校教育的发展,近几年来高校学生人数逐渐增加,对在线考试的需求越来越多。因此,通过开发基于java的在线考试系统来提高学习效率,增......
  • 第5课:基于案例一节课贯通Spark Streaming流计算框架的运行源码
    本节课基于案例试图通过一节课贯通SparkStreaming流计算框架的运行源码,这节课建立在之前4节课的基础之上,本节内容分成2部分:1,在线动态计算分类最热门商品案例回顾与演示2,基于案例贯通SparkStreaming的运行源码。在线动态计算分类最热门商品案例回顾与演示这个基于之前的课程内容......