分治法的几个应用

本文介绍了分治法的基本思想,包括分、治、合三个步骤,并通过归并排序、二分查找算法、乘方问题以及斐波那契数列的计算来阐述分治法的实际应用。归并排序的时间复杂度为Θ(nlog n),二分查找的时间复杂度为Θ(log2 n)。分治法能有效降低问题复杂度,如在计算乘方问题时,时间复杂度可降至Θ(log n)。
摘要由CSDN通过智能技术生成

以下为我听网课视频的笔记:
网课视频:麻省理工学院公开课:算法导论 (B站上一搜就可以找到)
个人学习资料:算法导论第3版

主要内容:本文主要记录对分治法的理解及应用,并对课堂上的内容整理的笔记。

  1. 总述:分治法的主要步骤是:分(divide)——治(conque)——合(combine),通过将大(难)的问题分解成小(容易解决)的问题,然后对小问题进行求解,最后再合成从而解决问题。

  2. 归并排序:对一个未排序的数组进行排序,该算法在另一篇博文(排序算法——合并算法)已有所介绍
    算法复杂度:时间复杂度: T ( n ) = 2 T ( n 2 ) + Θ ( n ) T(n) = 2T(\dfrac{n}{2}) + \Theta(n) T(n)=2T(2n)+Θ(n),计算得到: T ( n ) = Θ ( n l o g   n ) T(n) =\Theta(nlog\ n) T(n)=Θ(nlog n)

    • 分:将一个待排序的数组分成两个小的数组
    • 治:对得到的两个数组分别进行排序
    • 合:将排好序的两个小数组合并起来
  3. 二分查找算法:在一个已排好序的数组(从小到大排序)中查找某个数字x
    算法复杂度:时间复杂度: T ( n ) = Θ ( l o g 2   n ) T(n) =\Theta(log_2\ n) T(n)=Θ(log2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值