递归式 T(n)=2T(n/2)+n/lgn的复杂度求解
符合主递归式条件的情况
首先对于可以用主方法求解的形式,这里不再说明,符合主方法的三种情况只要套用公式即可得到正确答案。
不符合主递归式条件 除以 
有类似 形式的递归式存在,其解为
,有些解答认为是
实际上并不准确。
同样这种形式也不符合主方法的条件,同样使用递归树法进行近似的求解,然后再使用代入法证明答案的正确性。
在计算这个递归式需要使用一些调和级数的知识
同样,首先计算叶节点的复杂度,同上 叶节点数量为 ,即每个叶节点复杂度为
,总的复杂度为
接下来计算中间节点包括根节点的复杂度,同上,一共有 层,各层之和为
这里的累加项不再是一个等比数列,而是一个调和级数,即为
所以可以看出进行多出一次对数运算的原因在于分数的累加,因此总的复杂度
同样,下面使用代入法证明结果的正确性,因为证明步骤类似,这里也只证明渐近上界为 , 设
,所以有
下面证明 ,为了证明的简便,我们假设n为2的幂次,即
,则
对于极限 ,那么有
于是,得证
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了