已知T(n)=2T(n/2)+n;求O(n)?

总结网上的归纳,自己再写一遍:

T(n)=2T(n/2)+n                                第一次,即k=1T(n/2)=2T((n/2)/2)+n/2                        第二次,即k=2T((n/2)/2)=2T(((n/2)/2)/2)+(n/2)/2            第三次,即k=3

即:
T(n/20)=2T(n/21)+n/20 第一次,即k=1,t=2 ①
T(n/21)=2T(n/22)+n/21 第二次,即k=2,t=4 ②
T(n/22)=2T(n/23)+n/22 第三次,即k=3,t=8 ③

③式带入②式得:T(n/2)=2(2T(n/23)+n/22)+n/21=22T(n/23)+n ④;
②式代入①式得:T(n)=2(22T(n/23)+n)+n=23T(n/23)+3n ⑤;

三式得出T(n)=23T(n/23)+3n ⑤,故当有k个式子,且最后一个的式子表达是T(2)=2T(1)+2的时候,⑤式中的次幂3可换为k,即T(n)=2kT(n/2k)+kn ⑥,而这中间使2k=n,才得最后一个表达式代入总式内故得T(n)=2kT(1)+kn ⑦

此时解开⑦式便可。
∵2k=n
∴k=log2n
∴T(n)=n+nlog2n

∴O(n)=nlog2n

已知T(n)=2T(n/2)+n,求O(n)?相关推荐

  1. 买天文望远镜必看——已知望远镜焦距、相机画幅,求视场(附代码,实时更新)

    已知望远镜焦距.相机画幅,求视场 1. 计算 θ 1 , θ 2 , θ 3 \theta_1,\theta_2,\theta_3 θ1​,θ2​,θ3​ 分别表示横.纵和对角向视场角直径,单位:弧度 ...

  2. PAT甲级1020变体:已知二叉树层序+中序序列,求后序遍历序列

    PAT甲级1020变体:已知二叉树层序+中序序列,求后序遍历序列 题目 输入格式 输出格式 输入样例 输出样例 代码 题目 已知二叉树层序+中序序列,求后序遍历序列. 输入格式 第一行给出该二叉树的节 ...

  3. 分别已知两直线上的两点,求两直线交点

    分别已知两直线上的两点,求两直线交点 求两直线的交点是初中数学的简单问题了,在直角坐标系中直线有很多种表示方式.同时我们知道两点确定一条直线,已知两点坐标自然能求出直线坐标,已知两直线坐标自然能求出两 ...

  4. 已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解)

    已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解) 在一个二维平面上给定两个圆的圆心横纵坐标.半径共6个参数, 求交点. 这个问题无非是解二元二次方程组.普通二元二次方程联立消元求解的困难在于 ...

  5. 数据结构与算法:已知二叉树两种遍历序列,求第三种遍历序列

    在笔试题目中经常碰到此类题目,已知先序遍历序列和中序遍历序列,求后序序列或者已知中序序列和后序序列,求先序遍历序列.其中若已知先序序列和后序序列,无法唯一确定一棵树,所以就无法得知中序序列. 1.已知 ...

  6. 已知曲线上三点,如何求中间一点的法向量。

    如下图,已知 A.B.C 三个点,求 B 点的 法向量,即(fCosSita, fSinSita),Sita 为 法线按逆时针方向和水平方向的夹角. 先计算线段AB的单位垂线段2,再计算线段BC 的单 ...

  7. 已知先序和中序序列求二叉树

    已知二叉树的先序和中序序列,构造出相应的二叉树 先序:ABCDEFGHlJ 中序:CDBFEAIHGJ 1.由先序求出A为二叉树的根 2.在中序遍历中找到A的位置,则CDBFE为它的左子树,IHGJ为 ...

  8. 已知两个质数乘积n,求较大的那个质数

    题目描述 已知正整数n是两个不同的质数的乘积,试求出较大的那个质数. 思路 从n-1开始尝试能不能被n整除,能被整除的就是较大的那个质数. #include<iostream> using ...

  9. GIS算法--已知一点经纬度,方位角,距离求另一点

    已知一个点A的经纬度坐标,点B相对与A的方位角,B到A的距离,求B的经纬度坐标,用Javascript语言来完成该算法,借用了一下openL CommonFunc.caculate={Vincenty ...

最新文章

  1. Android 设计模式:(三)装饰者模式 —— 装饰对象
  2. 获取pheatmap聚类后和标准化后的结果
  3. kafka实战最佳经验,阿里又现海王!某程序员同时约两个女生十一出游
  4. mac下编译安装grafana 4.2.0
  5. Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署
  6. Django Models一对多操作
  7. Android——怎么引入okhttp3
  8. pdf转换为word问题
  9. 2018.09.14python学习第四天part2
  10. 汇编语言8086CPU之寄存器总结
  11. 调试 Dockerfile - 每天5分钟玩转 Docker 容器技术(15)
  12. 收获,不止SQL优化——抓住SQL的本质--第四章
  13. newifimini出厂固件_新路由mini固件|newifi新路由mini OS固件V3.2.1.1100 抢先版 - 极光下载站...
  14. 如何让你的数据库定时自动备份(2000SQL)
  15. 完美仿MSN右下角弹出广告代码并可自动消失,附带关闭按钮
  16. 数据苦库中的几种规范
  17. gen_fsm的学习笔记
  18. pythonsample_python sample code | 学步园
  19. 汇编:Mac系统搭建DOSBox汇编环境
  20. python 调用sqldr_SQLLDR用武之地

热门文章

  1. 基于C++的高性能http框架cinatra及其web框架示例feather介绍及开发演示
  2. java中注解 详解
  3. java call_求问java代码中的call是什么意思?
  4. Leco题目:两数相加
  5. win11怎么快速锁屏 Windows11快速锁屏的设置方法
  6. 转一篇Java基础的文章,比较有深度的,就转来收藏了
  7. 【JavaWeb - 网页编程】三 jQuery 类库
  8. document.getElementById/Name/TagName
  9. 硬件安全技术——芯片安全设计技术2
  10. java.sql.SQLException: org.gjt.mm.mysql.Driver