8.3 分治算法和递推关系

8.3 分治算法和递推关系

基础内容:
假 设 f ( n ) 为 求 解 问 题 的 规 模 的 总 步 数 , g ( n ) 表 示 每 一 步 中 额 外 的 步 骤 。 假 设 递 推 关 系 中 , 每 次 都 将 问 题 拆 分 为 d 个 更 小 的 问 题 , 那 么 f ( n ) = f ( n d ) + g ( n ) 假设 f(n)为求解问题的规模的总步数,g(n)表示每一步中额外的步骤。\\ 假设递推关系中,每次都将问题拆分为d个更小的问题,那么\\ f(n)=f(\frac{n}{d})+g(n) f(n)g(n)df(n)=f(dn)+g(n)
例如归并排序

其总数就可以表示为f(n)=2f(n/2)+n

在上面的基础之上:

g(n)为固定长度


设 f 是 满 足 递 推 关 系 : f ( n ) = a f ( n b ) + c 的 增 函 数 , 即 g ( n ) 为 固 定 长 度 , 其 中 a , c ∈ R , b ∈ N , 那 么 f ( n ) 是 { O ( n log ⁡ b a ) a > 1 O ( log ⁡ b n ) a = 1 如 果 n = b k , a ≠ 1 , f ( n ) = C 1 n log ⁡ b a + C 2 C 1 = f ( 1 ) + c a − 1 , C 2 = − c a − 1 设f是满足递推关系:\\ f(n)=af(\frac{n}{b})+c \\ 的增函数,即g(n)为固定长度,其中 a,c \in R, b \in N,那么 \\ f(n) 是 \begin{cases} O({n}^{\log_{b} a}) & a>1 \\ O(\log_b n) & a=1 \end{cases} \\ 如果 n=b^k,a \neq 1,f(n)=C_1 {n}^{\log_b a}+C_2\\ C_1=f(1)+\frac{c}{a-1},C_2=\frac{-c}{a-1} ff(n)=af(bn)+cg(n)a,cRbNf(n){ O(nlogba)O(logbn)a>1a=1n=bk,a=1,f(n)=C1nlogba+C2C1=f(1)+a1cC

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值