首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
采用分治法计算最大子段和时间复杂度为()
[单选题]
采用分治法计算最大子段和时间复杂度为()
O(log(n))
O(nlog(n))
O(n^2)
O(n)
查看答案及解析
添加笔记
求解答(6)
邀请回答
收藏(165)
分享
纠错
3个回答
添加回答
10
callmexss
分治法计算最大子段和的时间复杂度是O(nlogn)
假设问题规模即数组长度为n,那么:
第一次:[0, n/2], [n/2+1, n], 每一部分是n/2
第二次:[0, n/4], [n/4+1, n/2], [n/2+1, 3n/4], [3n/4+1, n], 每一部分是n/4
...
第i次:假设第i次每个问题都不可再分,则每一部分为 n / n = 1,共有n项,于是有2^i = n
解得i = logn,每一次分治的时间复杂度是O(n),二者相乘得时间复杂度O(nlogn)
动态规划的时间复杂度是O(n)
答案应该选B
发表于 2017-12-27 15:42:17
回复(1)
7
shimianmaifu
for循环的时间复杂度是O(n)
但是分治法存在递归推式
T(n)=1 n=1
T(n)=2T(n/2)+n n>1
根据主定理求出的时间复杂性为O(nlon2n)
所以答案是B
发表于 2019-12-22 18:47:06
回复(0)
1
kilakila
D,采用分治法计算最大子段和,只需要遍历数组一遍,复杂度为O(n)
发表于 2017-11-04 10:35:47
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
分治
复杂度
上传者:
牛100
难度:
3条回答
165收藏
5432浏览
热门推荐
相关试题
两颗二叉树T1和T2,T1的节点数...
阿里巴巴
树
分治
评论
(2)
要求先给出思路,然后写代码,可以使...
搜狐
查找
分治
评论
(3)
编程题:输入一个正整数,若该数能用...
网易
递归
分治
评论
(16)
明明的随机数
数组
评论
(3692)
来自
华为研发工程师编程题
已知a
40
=...
京东
职能
2019
财务
保险
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题