问一下这段代码的时间复杂度

direren 2011-06-01 07:15:20
Bla(array, start, end)
if(start != end)
for each i between start and end
sum += array[i]
Bla(array, start, (start + end)/2)
Bla(array, (start + end)/2, end)

现在只能看出简单的代码的时间复杂读,遇到这个想了好一会也没想出来,最好是说说怎么算的,遇到这种递归的应该怎么考虑
...全文
81 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2011-06-01
  • 打赏
  • 举报
回复
算法导论第一章讲过递归的时间复杂度计算,整个问题的复杂度是呈现一个数树形态的,树中所有结点所耗费时间和就是nlgn。
  • 打赏
  • 举报
回复
n*logn
luciferisnotsatan 2011-06-01
  • 打赏
  • 举报
回复
n*logn

这代码和快排有点像
xxwy89 2011-06-01
  • 打赏
  • 举报
回复
n*logn,类似于快排的算法。
ryfdizuo 2011-06-01
  • 打赏
  • 举报
回复
n*logn
每一层都处理n个元素,递归logn层。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧