一个时间复杂度的问题为什么能求出2个结果……
  • 板块学术版
  • 楼主Cryflmind
  • 当前回复8
  • 已保存回复8
  • 发布时间2023/9/15 09:49
  • 上次更新2023/11/2 20:49:32
查看原帖
一个时间复杂度的问题为什么能求出2个结果……
563251
Cryflmind楼主2023/9/15 09:49

递推式: T(n)=4T(n2)+nT(n)=4T(\frac{n}{2})+n
按照主定理求解:
a=4a=4
b=2b=2
f(n)=nf(n)=n
符合主定理case1:
nlogba=nlog24=n2n^{log_ba}=n^{log_24}=n^2,n2−1=f(n)=nn^{2-1}=f(n)=n,所以T(n)=O(n2)T(n)=O(n^2)
按照递归树求解: 第一层1个nn,和为nn
第二层4个n2\frac{n}{2},和为2n2n
第三层16个n4\frac{n}{4},和为4n4n
......
实际复杂度为O((1+2+4+...+2n)nlog2n)O((1+2+4+...+2^n)nlog_2n),化简得O(2n+1nlogn)O(2^{n+1}nlogn)
问题是,他们求的不是同一个递推式嘛,为什么结果会不一样呢?

2023/9/15 09:49
加载中...