免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1845 | 回复: 3
打印 上一主题 下一主题

求一个算法的复杂度,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-13 00:08 |只看该作者 |倒序浏览
有如下递归函数f(n),其时间复杂度为?
int f(int n){
  int sum = 0;
  for(int i=0; i <n; i++)
    sum = sum + i;
  return f(n/2) + f((n+1)/2) + sum;
}

论坛徽章:
0
2 [报告]
发表于 2010-09-13 08:28 |只看该作者
递归?退出条件,。。。咋没有

论坛徽章:
0
3 [报告]
发表于 2010-09-13 09:14 |只看该作者
回复 1# xdshting


复杂度 nlog(n),每次递归是O(n),大概递归log(n)次,所以是nlog(n)。

不过,如二楼所说,为啥没有退出条件。

论坛徽章:
0
4 [报告]
发表于 2010-09-13 10:14 |只看该作者
回复  xdshting


复杂度 nlog(n),每次递归是O(n),大概递归log(n)次,所以是nlog(n)。

不过,如二 ...
zzyong08 发表于 2010-09-13 09:14



    不好意思,这是我从别人网站上考过来的,google的面试题目
至于没有结束条件,我没注意,汗
我只是在想 f(n)=n+f(n/2)+f((n+1)/2)的时间复杂度的计算问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP