问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

递归时间复杂度 推演计算

发布网友 发布时间:2022-12-01 21:45

我来回答

1个回答

热心网友 时间:2023-11-08 02:22

递归的时间复杂度计算较为麻烦。以下我们使用归并排序的例子,对递归复杂度进行推演。

假设现在有一个归并排序。他的运行总时间是 T(n) ,
我们通过将其分解成 2 个计算式,即 : 2 * (T(n/2))+ n ,为什么加 n 呢?因为 n/2 只是递归计算的时间,实际还有合并的时间,在大部分递归中,不但有子任务的时间,还有合并子任务的时间也要计算(在递归计算中,子问题消耗的时间需要统计,合并子问题的结果所消耗的时间也要统计)。

现在,我们的公式是 2 * (T(n/2))+ n ,表达的是一颗高度是 1 的递归树:

如上图,我们需要把这颗递归树的 3 个节点的所有耗时都加上,最终的结果就是 T(N) ;
再看上图,我们递归了 1 层,如果递归 2 层、3层呢?

递归 2 层,表达式变为 4 *(T(n/4))+ 2n .

递归 3 层,表达式变为 8 * (T(n/8))+ 3n .

我们总结一下:

递归 2 层: 4(T(n/4))+ 2n
递归 3 层: 8(T(n/8))+ 3n
递归 4 层: 16(T(n/16))+ 4n
······
递归 k 层: 2^k (T(n/2^k))+ kn

假设我们最终递归的结果是 1,那么:

T(n/2^k) = 1
·····反推 2^k = n
····· 那么 k = log2n

k 等于 log2N ,我们带入 k 到上面的公式: 2^k (T(n/2^k))+ kn ;

即 n + log2n * n ;

使用大 O 表达式,去除常数,低阶,系数,递归的时间复杂度为 O(nlogn) ;

关于递归树的推演,推荐观看一个视频,讲的很详细,地址: https://www.*.com/watch?v=bQi9BHCiusg
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
街头篮球手游中锋攻略汇总 C位攻略大全 街头篮球手游中锋有什么技巧 中锋C技巧详解 php一个表单提交数据怎么区分开,隐藏域可以吗,如果可以怎么用。 梦见牙掉光了什么预兆 梦见牙齿掉完了是什么征兆 梦见牙齿全掉了是什么预兆 梦见一口牙全部掉了是什么预兆 教师年度考核不认课的领导班子成员,干的工作不少,怎样考核办法公平... 湖北省郧西县义务教育学校绩效工资实施办法绩效工资总量和水平的... 事业单位年底是否有绩效奖金的 雨刮器刮完留下痕迹,怎么处理呢?? 全国前十名的重点大学是哪些 计算机的未来会是什么样的 电脑接消息手机是已读吗 对自己的健康负责 鲁迅大抵是经典句子 福建农业大学研究生能跨专业报考吗 (周运)Alex 12星座一周运势(10.26—11.1) 卫生间在安装灯具的过程中,有什么地方需要注意呢? 医药洁净区消防指示灯可以安装悬挂式吗 金锣的大肠怎么做好吃 谁能告诉我潮洲的特产 酥炸洋葱圈如何做 制作酥炸洋葱圈的方法 老婆老爱玩手机,跟我聊天没话说,跟别的人,聊不完的话题 老婆总是玩手机怎么办? 我老婆一天玩手机咋办 永恒战士2 没越狱,求无限金币,钻石破解方法 2022年4月23日农历什么时候 是什么星座季节 医学分哪几种?分别介绍下 180,65公斤买雷诺斯雷诺斯冲锋冲锋衣要几个x 递归时间复杂度计算公式 教师资格证的院系班级怎么填?给一个具体的例子好嘛 苹果11手机怎么录屏 灯泡被火烧后会怎样 除夕长明灯一般耗电多少? 家里的电灯泡通电“烧了”是什么变化? 头发出油严重怎么办 头发出油严重的原因 藏獒分几个产区 藏獒分几个系? mini是什么品牌? 卷饼里的豆皮是炒的还是拌的 物业保洁绿化怎么说 甜栗南瓜需要塔架吗? 有谁知道这是什么瓜啊?怎么个吃法呢? 中国美食排行榜前十名 无主之地3魔女dlc是哪个 专科十大最好专业学校 冰箱内部发热不制冷? 冰箱不制冷箱体发热? 魏成燕的艺术签名怎么写好看 请懂周易的朋友给算算运势,爱情,事业 女,农历1990年闰五月十三(阳历7月5日)下午2点生。谢谢~~