递推的复杂度 T(n)=T(n/2T(n/2)+n^2?

2024-02-18

根据主定理,这个递归是 θ(n^2),但是如果我们用树递归来解决这个问题,那么解就是 θ(n^2*logn)。难道我做错了什么?


如果递推关系为 T(n) = 2T(n/2) + n^2,那么您处于主定理的第三种情况,并且正则性条件适用,因此 T(n) = Theta(n^ 2)。 [c_crit 为 log_2(2) = 1, n^2 = Omega(n), 2(n/2)^2 = (n^2)/2 (因此 k

如果你手动展开递推关系,那么你会得到:

T(n) = n^2 + 2(n/2)^2 + 4(n/4)^2 + 8(n/8)^2 + ...
     = n^2 ( 1 + 1/2 + 1/4 + 1/8 + ...)
     <= 2n^2

所以这个方法也给你 T(n) = Theta(n^2)。

方法为将递推关系输入 Wolfram Alpha 并查看其内容 https://www.wolframalpha.com/input/?i=T%28n%29%20%3D%202T%28n%2F2%29%20%2B%20n%5E2给出 T(n) ~ 2n^2,所以又是 Theta(n^2)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

递推的复杂度 T(n)=T(n/2T(n/2)+n^2? 的相关文章

  • 最慢的计算复杂度(Big-O)

    在这些算法中 我知道 Alg1 是最快的 因为它是 n 平方的 接下来是 Alg4 因为它是 n 的立方 然后 Alg2 可能是最慢的 因为它是 2 n 这应该具有非常差的性能 然而Alg3和Alg5在我的阅读速度方面还没有遇到过 这两种算
  • 有人可以解释以下异或属性

    我的一个论坛提到给定的数组n数字 arr 0 n 1 以下条件成立 is the xor运算符 f l r f 0 r f 0 l 1 where f l r arr l arr l 1 arr r 我检查了上面的数组数量和不同的值l an
  • C 埃及分数

    古埃及人仅使用以下形式的分数1 n因此任何其他分数都必须表示为这些单位分数的总和 而且 所有单位分数都是不同的 在C或Java中使任何分数成为埃及分数 总和越少越好 的好方法是什么 可以使用什么算法 分支定界 a 例如 3 4 1 2 1
  • 如何有效地找到距给定点最远的点(从一组点中)?

    我正在寻找一种算法或数据结构来解决以下问题 给你一组点 S 然后你会得到另一个点形式的 Q 查询 对于每个查询 找到集合中距离给定点最远的点 集合中最多有 10 5 个点和 10 5 个查询 所有点的坐标都在 0 到 10 5 范围内 我想
  • 数学组合的完美最小哈希

    首先定义两个整数N and K where N gt K 两者都在编译时已知 例如 N 8 and K 3 接下来 定义一组整数 0 N or 1 N 如果这使答案更简单 并调用它S 例如 0 1 2 3 4 5 6 7 的子集数量S wi
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • 迭代任意大小的子集

    我可以迭代大小为 1 的子集 for int a 0 a lt size a 或大小为 2 的子集 for int a1 0 a1 lt size a1 for int a2 a1 1 a2 lt size a2 or 3 for int
  • 需要一种将网络块范围折叠为超集范围列表的算法

    我的数学不及格 我需要一种有效的方法将网络范围缩小为超集 例如如果我输入 IP 范围列表 1 1 1 1至2 2 2 5 1 1 1 2至2 2 2 4 10 5 5 5至155 5 5 5 10 5 5 6至10 5 5 7 我想返回以下
  • 从一种数字系统转换为另一种数字系统后会有多少位数字

    主要问题 有多少位数字 让我解释 我有一个二进制数 11000000 十进制数是192 转换为十进制后 它有多少位 以十进制表示 在我的示例中 它是 3 位数字 但是 这不是问题 我在互联网上搜索并找到了一种用于整数部分的算法和一种用于小数
  • 在 O(n) 时间内排序?

    我被这个问题困扰了 2周 知道如何处理它吗 令 L 为 n 个不同整数的列表 假设 L 的 x 的元素在 1 750 范围内 设计线性排序算法对 L 的元素进行排序 我已经尝试过插入排序 但我不确定我的方法是否正确 Construct an
  • Java递归方法求阶乘返回负输出[重复]

    这个问题在这里已经有答案了 我知道这是溢出 但问题是 20 是相对较小的数字 这不应该发生 对吧 有没有更好的方法来查找大数 例如 1000 的阶乘 而不会得到这种奇怪的结果 public class RecursiveFunctionsE
  • 解开 Knuth 的结:如何重构意大利面条式代码?

    这个问题的灵感来自如何将流程图转化为实施 https stackoverflow com questions 36647765它询问如何通过算法消除goto代码中的语句 这answer https stackoverflow com a 3
  • 有没有时间复杂度为O(N)的排序算法?

    大多数排序算法的复杂度为 O NN 或 O NlogN 来实现结果 但是 对于特定的输入集 有些算法的复杂度为 O N 我想知道是否有一种排序算法在所有情况下都具有 O N 的复杂度 如果您只能比较 检查两个项目是否为 正在排序的值 那么您
  • 需要解释搜索最小大和的算法

    我正在解决 Codility 问题作为练习 但无法回答其中一个问题 我在互联网上找到了答案 但我不明白这个算法是如何工作的 有人可以引导我逐步完成它吗 这是问题 You are given integers K M and a non em
  • 如何对对象进行排序? (画家算法)

    所以我有 4 个矩形形状 我正在尝试应用排序算法 画家算法 https en wikipedia org wiki Painter 27s algorithm 来知道我需要先绘制哪些形状 在 3d 中 然后绘制哪个形状 Note 相机位于右
  • 动态规划 (DP) 中的重叠子问题是什么?

    为了使动态规划适用 问题必须具有两个关键属性 最优子结构 and 重叠子问题 1 https en wikipedia org wiki Dynamic programming 对于这个问题 我们只关注后一个属性 有各种不同的定义重叠子问题
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出
  • 从 datagridview C# 中检索数字值

    我正在尝试从 datagridview 检索数值 表中的值和变量 weeklyTotal 的数据类型都是整数 我也试图将其转换为整数 我浏览了整个网站是否有类似的问题 但没有一个解决方案有帮助 我收到的错误消息是 当转换为数字时 该值必须小
  • 我正在尝试寻找“调酒师算法”

    我正在解决旧编程竞赛中的一些示例问题 在这个问题中 我们输入了我们有多少调酒师以及他们知道哪种配方 每杯鸡尾酒的制作时间为 1 分钟 我们需要计算是否可以在 5 分钟内使用所有调酒师完成订单 解决这个问题的关键是尽可能高效地分配鸡尾酒 这就
  • 将名称字符串编码为唯一的数字

    我有一大堆名字 数以百万计 他们每个人都有一个名字 一个可选的中间名和一个姓氏 我需要将这些名称编码为唯一代表这些名称的数字 编码应该是一对一的 即一个名称只能与一个数字相关联 一个数字只能与一个名称相关联 对此进行编码的明智方法是什么 我

随机推荐

  • 如何使用 Angular-UI Bootstrap 在 AngularJS 中实现服务器端分页?

    请建议使用 Angular JS 和 Angular UI Bootstrap 实现服务器端分页的不同方法 我将根据 angualr ui bootsrap 分页指令中选择的当前页面使用 ng repeat 对列表进行分页 因为我们需要避免
  • ts-jest (TypeScript Jest) 中的映射路径出现问题,找不到模块

    I want to implement some jest tests in my backend and so I was trying to map my paths that I have configured in tsconfig
  • 设置自定义对话框的宽度以包裹内容android

    我想设置自定义对话框的宽度以包裹内容 但它总是填满屏幕的所有宽度 我已经测试过这个 android view WindowManager LayoutParams params mydialog getWindow getAttribute
  • 使用 PHP 在两个 csv 文件之间实现左连接

    由于该解决方案是根据投票良好的答案改编的别处 https stackoverflow com a 25837426 我没想到会遇到问题 问题 我想要LEFT JOIN 文件0 csv https www dropbox com s gx1o
  • 向 Vim 添加命令

    我终于决定尝试一下Vim http en wikipedia org wiki Vim 28text editor 29 因为我对 GUI 编辑器越来越感到沮丧 到目前为止 我很喜欢它 但我无法为我遇到的问题找到任何帮助 我正在尝试映射命令
  • iOS 应用内购买收据字符串解释

    我尝试了解从iTunes服务器获取的收据信息 但找不到相关文档 特别是 它们之间有什么区别unique identifier unique vendor identifier original transaction id 在 WWDC 1
  • 出于什么原因,我们采用 lower_case_with_underscores 命名约定? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 根据你的解释 这可能是也可能不是一个反问句 但这确实让我感到困惑 这个公约有什么意义呢 我知道命名约定不一定要有韵律或背后的原因 但为什么要偏离
  • 如何标记多个 UITableViewCell 并对标记的单元格执行操作?

    我想做的几乎与邮件应用程序所做的一样 当我选择 编辑 时 而不是通常的 删除 按钮 单选按钮出现在用户可以检查的一侧 然后用户可以单击一个按钮来采取对标记单元格的操作 任何类型的操作 不仅仅是删除 有没有苹果示例代码可以做到这一点 任何人都
  • Jackson - 反序列化一个基本枚举

    是否可以反序列化具有基于一的索引的枚举 enum Status Active Inactive status 1 表示 Status Active 但 Jackson 将其设为 Status Inactive public enum Sta
  • Bookdown:单个 html 输出文件

    如果我在第一行下面添加一行 output yml bookdown gitbook split by none css in the bookdown 演示 https github com rstudio bookdown demo输出变
  • 在vim中,我如何回到搜索之前的位置?

    在 vim 中编程我经常去搜索一些东西 拉出它 然后返回到我所在的位置 插入它 修改它 问题是 在我搜索并找到之后 我需要手动找到回到原来位置的路 有没有一种方法可以自动返回到我上次搜索时所在的位置 Ctrl O takes me to t
  • 通过 Safari 打开时,Firebase 动态链接不会重定向到应用程序

    我已经添加了Firebase Dynamic Link在我的应用程序中 当我打开iPhone链接通过Google Chrome 它会将我重定向到应用程序 但是当我尝试通过以下方式打开应用程序时Safari 我通过 Notes 打开链接 而不
  • 使用GD PHP给PNG图像加水印时出现部分黑色背景

    我已经拼凑了一个 PHP 类来使用 PHP 的 GD 函数执行各种与图像相关的功能 它适用于所有图像类型 旋转 翻转 调整大小 裁剪以及较小程度的水印 除后者外 所有这些都可以完美运行 例如 经过一些更改后 旋转的 PNG 图像保留了透明度
  • 在 Windows 8 Metro C# 中显示存储文件

    我想在 UI 上显示资产中的图像文件 我设法将该项目存储为StorageFile 我怎样才能显示它 我尝试在 XAML 中显示它
  • 每当存在具有焦点的只读文本框时,无法检测到按键事件上的 Ctrl + 键快捷键

    我以为我自己解决了这个问题 但它又回来困扰我的应用程序 所以这里是 我在带有几个禁用和只读文本框的表单中注册了以下 keydown 事件处理程序 它们只是按钮的简单快捷方式 private void AccountViewForm KeyD
  • ffmpeg 用于将视频编码为 H264 编解码器格式

    我有一个 mp4 视频文件 MPEG4 视频编解码器 我试图在 Linux 上使用 ffmpeg 将其转换为 H264 视频编解码器格式 原始 h 264 格式 版本 FFmpeg 版本 SVN r0 5 1 4 0 5 1 1ubuntu
  • 如何注册我的 Android 应用程序来解析网站

    我应该如何注册我的 Android 应用程序 或 设备来解析推送站点以获取通知 现在我已连接到 GCM 我无法继续使用解析来注册我的设备 这是基于标准推送通知实现官方 Parse SDK 的最佳方法我的经历 and 多次尝试和错误并且许多
  • 音乐分析和可视化

    我对用 Python 编写音乐可视化工具感兴趣 第一个问题是如何从音乐中获取信息 如音量 频率 转速等 从哪里来 来自声卡还是实际的音乐文件 我的猜测是来自声卡 但是我如何访问声卡和想要的信息 最好以独立于平台的方式 Linux 是必须的
  • IOS:使用 NSUserDefault 存储数组

    我想存储一个数组NSUserDefault 然后 我输入applicationDidEnterBackground NSUserDefaults standardUserDefaults setObject myArray forKey m
  • 递推的复杂度 T(n)=T(n/2T(n/2)+n^2?

    根据主定理 这个递归是 n 2 但是如果我们用树递归来解决这个问题 那么解就是 n 2 logn 难道我做错了什么 如果递推关系为 T n 2T n 2 n 2 那么您处于主定理的第三种情况 并且正则性条件适用 因此 T n Theta n