前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >主定理与时间复杂度

主定理与时间复杂度

作者头像
attack
发布2018-09-17 15:41:53
1.1K0
发布2018-09-17 15:41:53
举报

非常有意思的东西,我大概看了一下wiki百科和百度百科,然而发现都看不懂。

只好在网上找了一篇看起来不怎么严谨的博客,不过算出来的是对的?那就默认是对的吧qwq

主定理

定义

如果我们要解决规模为$n$的问题,通过分治,得到$a$个规模为$\frac{n}{b}$的问题,每次的额外复杂度为$O(n^d)$

$T(n) <= aT(\frac{n}{d})+c(n^d)$

$$ \begin{align*} T\left( n\right) =\begin{cases}O\left( n^{d}\log n\right) &\left[ a=b^{d}\right] \\ O\left( n^{a}\right) &\left[ a < b^d\right]\\ O(n^{ \log _b^a})&\left[ a>b^{d}\right] \end{cases} \end{align*} $$

证明

咕咕咕。

实际应用

肯定就是分析算法复杂度啦。。

二分搜索

$a = 1, b = 2, d = 0$

复杂度:$O(logn)$

归并排序

$a = 2, b = 2, d = 1$

复杂度:$O(nlogn)$

基数排序

$a= 10, b = 10, d = 1$

复杂度:$O(nlogn)$ ?

FFT

$a = 2, b = 2, d = 1$

复杂度:$O(nlogn)$

Karatsuba快速乘法

$a = 3, b = 2, d =1$

复杂度:$O(n^{log_2^3})$

参考资料

https://blog.csdn.net/qq_35649707/article/details/77770463#commentsedit

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主定理
    • 定义
      • 证明
      • 实际应用
        • 二分搜索
          • 归并排序
            • 基数排序
              • FFT
                • Karatsuba快速乘法
                • 参考资料
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档