递归时间复杂度演算T (n)=aT (n/b)+f (n)-东方仙盟

主定理公式:T (n)=aT (n/b)+f (n)

参数含义

T (n):规模 n 的问题耗时

a:递归产生的子问题数量

b:每个子问题规模缩小为原来 1/b

f (n):拆分、合并子问题的非递归开销

重要前提:主定理只适用于 除以常数 的分治递归 T (n)=aT (n/b)+f (n)

如果是 T (n)=aT (n-c)+f (n),是减号,不能用主定理,要用迭代展开

第一步:计算基准 n^(log_b a),拿这个和 f (n) 对比,分 3 种情况

情况 1:f (n) 远小于 n^(log_b a)

条件:存在 ε>0,f (n)=O (n^(log_b a - ε))

结论:T (n)=Θ(n^(log_b a))

例子:T (n)=2T (n/2)+√n

a=2,b=2,log2 (2)=1,基准 n^1=n

f (n)=√n = n^0.5 < n^1,满足情况 1

T(n)=Θ(n)

情况 2:f (n) 等于基准,附带对数项【自考最高频!】

条件:f (n)=Θ(n^(log_b a) * lg^k n) ,k≥0

结论:T (n)=Θ(n^(log_b a) * lg^(k+1) n)

口诀:f 里面对数是 k 次方,结果对数 + 1 次方

真题例子 1:T (n)=2T (n/2)+n

a=2,b=2,log2 (2)=1,基准 n

f(n)=n = n^1 * lg^0 n,k=0

T(n)=Θ(n lg n)

真题例子 2:T (n)=2T (n/2)+n lg n 【你刷的选择题原题】

a=2,b=2,log2 (2)=1,基准 n

f(n)=n lg n = n^1 * lg^1 n,k=1

T(n)=Θ(n lg² n)

真题例子 3:T (n)=2T (n/2)+n lg² n

f(n)=n^1 * lg² n,k=2

T(n)=Θ(n lg³ n)

情况 3:f (n) 远大于 n^(log_b a),满足正则条件

条件:存在 ε>0,f (n)=Ω(n^(log_b a + ε)),且 af(n/b) ≤ cf(n)

结论:T (n)=Θ(f (n))

例子:T (n)=2T (n/2)+n²

log2 (2)=1,n² > n^1,满足情况 3

T(n)=Θ(n²)

=====================

【自考大题标准答题模板,直接抄写】

题目:T (n)=2T (n/2)+n lg n,T (1)=O (1)

解:

1、确定参数 a=2,b=2,f (n)=n lg n

2、计算 log_b a = log₂2 = 1,基准函数 n^(log_b a)=n^1 = n

3、对比 f (n):f (n)=n lg n = Θ(n¹ lg¹ n),属于主定理第二种情况,k=1

4、代入公式:T (n)=Θ(n^(log_b a) * lg^(k+1) n)=Θ(n lg² n)

=====================

坑点背诵

1、lg²n = (lg n)²,不是 lg (lg n)

2、只有 T (n)=aT (n/b) 能用主定理;T (n)=4T (n-1)+n,减号,不能用主定理,复杂度 Θ(4ⁿ)

3、Θ 是渐近复杂度,只看 n 很大时增长速度,不是求精确数字

=====================

自测两道题

题 1:T (n)=3T (n/3)+n

解:a=3,b=3,log3 (3)=1,f (n)=n=n¹lg⁰n,k=0

T(n)=Θ(n lg n)

题 2:T (n)=4T (n/2)+n²

解:a=4,b=2,log2 (4)=2,f (n)=n²=n²lg⁰n,k=0

T(n)=Θ(n² lg n)

=====================

递归树推导(题目要求写原理才写)

T(n)=2T(n/2)+n lg n

根节点:规模 n,开销 n lg n

第二层:2 个子节点,每个规模 n/2,总开销 n lg (n/2)

第三层:4 个子节点,总开销 n lg (n/4)

一共 lg n 层

全部求和:sum(i=0 到 lg n-1) n * lg (n / 2^i)

求和结果:Θ(n lg² n)

人人皆为创造者,共创方能共成长

每个人都是使用者,也是创造者;是数字世界的消费者,更是价值的生产者与分享者。在智能时代的浪潮里,单打独斗的发展模式早已落幕,唯有开放连接、创意共创、利益共享,才能让个体价值汇聚成生态合力,让技术与创意双向奔赴,实现平台与伙伴的快速成长、共赢致远。

原创永久分成,共赴星辰大海

原创创意共创、永久收益分成,是东方仙盟始终坚守的核心理念。我们坚信,每一份原创智慧都值得被尊重与回馈,以永久分成锚定共创初心,让创意者长期享有价值红利,携手万千伙伴向着科技星辰大海笃定前行,拥抱硅基 生命与数字智能交融的未来,共筑跨越时代的数字文明共同体。

东方仙盟:拥抱知识开源,共筑数字新生态

在全球化与数字化浪潮中,东方仙盟始终秉持开放协作、知识共享的理念,积极拥抱开源技术与开放标准。我们相信,唯有打破技术壁垒、汇聚全球智慧,才能真正推动行业的可持续发展。

开源赋能中小商户:通过将前端异常检测、跨系统数据互联等核心能力开源化,东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案,让更多商家能够平等享受数字转型的红利。

共建行业标准:我们积极参与国际技术社区,与全球开发者、合作伙伴共同制定开放协议 与技术规范,推动跨境零售、文旅、餐饮等多业态的系统互联互通,构建更加公平、高效的数字生态。

知识普惠,共促发展:通过开源社区 、技术文档与培训体系,东方仙盟致力于将前沿技术转化为可落地的行业实践,赋能全球合作伙伴,共同培育创新人才,推动数字经济 的普惠式增长

阿雪技术观

在科技发展浪潮中,我们不妨积极投身技术共享。不满足于做受益者,更要主动担当贡献者 。无论是分享代码、撰写技术博客,还是参与开源项目 维护改进,每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地,我们携手在此探索硅基 生命,为科技进步添砖加瓦。

Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Don't just be the one reaping all the benefits; step up and be a contributor too. Whether you're tossing out your code snippets , hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. We're gonna team up and explore the whole silicon - based life thing, and in the process, we'll be fueling the growth of technology

相关推荐
垆边人似月.1 小时前
华为机考题:明明的随机数
数据结构·算法·华为
Doubbbbbbble云2 小时前
多维空间索引结构R树与KD树性能对比研究4
算法
海上小飞龙2 小时前
【KMP算法-中篇】next 数组的递推:往前填一位,靠的是往回退几步
算法
keyipatience2 小时前
B树详解:从零构建平衡多路搜索树
数据结构·b树·算法·图搜索
FluxArt3 小时前
GPT Image 2.5 多图参考怎么用:Flux Art 生成与编辑教程
数据结构·gpt·算法
All for pursuit.3 小时前
【分治-2】215.数组中的第K个最大元素
数据结构·c++·算法·leetcode
CQU_JIAKE3 小时前
9.15【A】
算法·动态规划
成为深度学习高手3 小时前
DAG:沿时间与通道双相关建模的外生变量时序预测
网络·人工智能·深度学习·算法·机器学习·数据挖掘·时序数据库
阳明山水4 小时前
CEDAR双重解耦实现决策与干预分离
人工智能·深度学习·算法·机器学习·架构