算法渐近复杂度

2024-02-08

我想知道这个过程可以使用大θ符号在以下算法中返回的最小值和最大值是多少。算法是:

procedure F(????[1..n])
   s = 0
   for i = 1 to n
      j = min(max(i,A[i]),n³) 
      s = s + j
   return s

编辑:删除了原始答案,因为它是针对错误的问题。

分析取决于以下几行:

min(max(i,A[i]),n³) 

如果我们弄清楚了这种情况,那么我们就可以轻松地找出结果的情况。我们必须回答是否i > A[i]然后是否较大者i and A[i]大于n^3.

  1. i > A[i] and i > n^3。事实并非如此,因为i <= n and i, n是整数。
  2. i > A[i] and i < n^3。如果,例如,A[i] = -1。在这种情况下,我们添加i一起为了0 <= i <= n。结果是n(n+1)/2,即O(n^2)。 (我在用O但 Theta 也适用)。
  3. i < A[i] and A[i] < n^3。如果发生这种情况,i + 1<= A[i] <= n^3 - 1 and n > 2。在这种情况下,我们添加i + 1一起n次,对于i equal 1 to n,或者我们添加n^3 - 1一起n次。在低端我们得到n(n-1)/2 - n,和之前一样-n术语为-1,在高端我们得到n^4 - n;介于两者之间O(n^2) and O(n^4).
  4. i < A[i] and A[i] > n^3。如果发生这种情况,A[i] > n^3。在这种情况下我们有n^3 summed nn^4, O(n^4).

基于上述,我的想法是最好情况的下限是Omega(n^2)最坏情况的上限是O(n^4)。这两个界限对于各自的情况都是严格的,但由于它们不同,我们不能给出结果增长率的单一严格界限。

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

算法渐近复杂度 的相关文章

  • Java:使用indexOf方法根据另一个数组对数组进行排序

    我想根据另一个数组 索引 的排序顺序迭代两个数组 A B 在本例中为 10 34 32 21 String A a b c d String B e f g h int indexes 10 34 32 21 为这里的坏例子道歉 我已经更新
  • 当目标是查找某个字符串的所有出现情况时,KMP 最坏情况的复杂度是多少?

    我还想知道哪种算法在查找另一个字符串中所有出现的字符串时具有最坏情况的复杂性 博耶 摩尔算法似乎具有线性时间复杂度 KMP 算法在查找字符串中所有出现的模式时具有线性复杂度 如 Boyer Moore 算法1 如果您尝试在 aaaaaaaa
  • 为无向无权图实现推重标签算法 s-t 最小割边

    我正在寻找一个好的解决方案来在无向和未加权图中找到 s t 最小切割边 我想使用推送重新标记算法 但我不确定如何实现它以在无向和未加权图上找到最小割 在每对顶点之间有两条反向边 并在所有边上赋予相同的权重 并应用推送重新标记算法 我可以用这
  • 我想优化这个短循环

    我想优化这个简单的循环 unsigned int i while j 0 j is an unsigned int with a start value of about N 36 000 000 float sub 0 i 1 unsig
  • 交换两个向量之间的值,使两个向量的 max_element 之和最小

    这是 Codechef 的问题 但请耐心等待 https www codechef com ZCOPRAC problems ZCO16001 https www codechef com ZCOPRAC problems ZCO16001
  • 两个非嵌套循环的大 O 表示法

    对于两个非嵌套的 for 循环 大 O 表示法是什么 Example for int i 0 i
  • 哪种数据聚类算法适合检测时间序列事件中未知数量的聚类?

    这是我的场景 考虑在不同地点和时间发生的一组事件 例如 考虑有人在高空记录暴风雨期间城市中的雷击 就我的目的而言 闪电是瞬时的 只能击中某些位置 例如高层建筑 还可以想象每次雷击都有一个唯一的 ID 以便以后可以参考该雷击 这个城市大约有1
  • 合并字符数组中的最小重复次数

    假设我有两个数组 我想合并它们 以便合并后的数组具有最小重复次数 例如 x x 是重复 arr1 x d d m f m arr2 d d x f f m 唯一的条件是在合并数组中 元素来自arr1 and arr2必须出现在各自的订单中a
  • 按百分比减少多边形面积

    我有一个由点 x y 组成的多边形 我想做的是将其减少一个百分比 请记住 我不想只是扩大规模 多边形应该有一种内部边界 其宽度取决于百分比 该内部边界被多边形切断 谁知道可以实现这一目标的算法 输入 点数组 百分比 输出 点数组 你所寻求的
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • C 中的菱形数组排序

    我有以下 C 语言作业 我基本上需要一种方法而不是解决方案 我们有一个 13 x 13 的数组 在数组中 我们有一个需要考虑的菱形形状 该菱形之外的所有内容都初始化为 1 不重要 下面的 5 x 5 数组示例 x x 1 x x x 2 2
  • 使用FFT算法计算

    给定在平面上的点 1 0 2 0 n 0 上发现的一组 n 个粒子电荷载流子 在 i 0 点发现的粒子电荷记为 Qi 作用在粒子上的力由以下公式给出 C is a Coulomb s constant 给出一个算法来计算 Fi 对于总复杂度
  • 如何高效地在屏幕上精确绘制N个点?

    这听起来是一个简单的问题 但我发现要获得良好的性能是非常棘手的 我提出的第一个算法是随机绘制点 从一组中检查是否已绘制 否则绘制 如果我们只绘制几个点 那么这种方法效果很好 但当我们接近填满屏幕时 速度会灾难性地减慢 我想出的最好的方法是构
  • 如何从一组重叠的圆计算多边形集?

    这个问题是一些计算细节的扩展这个问题 https stackoverflow com questions 1667310 combined area of overlapping circles 假设有一组 可能重叠的 圆 并且希望计算这组
  • 删除队列中的最后一个元素

    我需要删除队列的最后一个元素 我唯一可以使用的操作是 Peek 获取第一个元素而不删除它 Enqueue element 向队列末尾插入一个元素 Dequeue 删除第一个元素 IsEmpty true 或 false 队列是否为空 而且我
  • 图中的后边

    I m having a hard time understanding Tarjan s algorithm for articulation points I m currently following this tutorial he
  • 如何确定算法函数的复杂度?

    您如何知道算法函数对于特定操作是否需要线性 常数 对数时间 它取决于CPU周期吗 您可以通过三种方式 至少 做到这一点 在网上查找算法 看看它是如何描述其时间复杂度的 根据输入大小 自己检查算法 查看嵌套循环和递归条件等内容 以及每个循环运
  • 寻找将集合映射到整数的双射函数

    对于任意两个序列 a b 其中 a a1 a2 an 且 b b1 b2 bn 0a b具有相同的元素 而不关心它们的顺序 例如 如果 a 1 1 2 3 b 2 1 3 1 c 3 2 1 3 则 f a f b f a f b 我知道有
  • 无需构建树即可预测霍夫曼压缩比

    我有一个二进制文件 我知道其中每个符号出现的次数 如果我要使用霍夫曼算法压缩它 我需要预测压缩文件的长度 我只对假设的输出长度感兴趣 而不对单个符号的代码感兴趣 因此构建霍夫曼树似乎是多余的 作为一个例子 我需要得到类似的东西 包含 4 个
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已

随机推荐

  • C++ 中阿拉伯字符串的反转

    如何使用 C 反转阿拉伯字符串 例如 的反义词是 阿拉伯字母的形状根据单词中的位置而不同 词首 词中或词尾 连接阿拉伯字母还有其他规则吗 正如 Petesh 所说 根据我能找到的参考资料 例如维基百科 http en wikipedia o
  • d3 色阶 - 与多种颜色呈线性?

    我正在尝试创建一些类似于量化标度的东西 但其行为类似于线性色标 当我尝试将多种颜色放入线性比例时 它似乎只在前两种颜色之间进行缩放 我想要多种颜色 例如量化比例 但在这些颜色之间淡入淡出 我不确定这是否可能 red and green wo
  • NoSuchMethodError:Jersey 客户端中的 MultivaluedMap.addAll

    我正在尝试使用 Jersey Client 模拟对我的 Web 服务的 HTTP 请求 我尝试实施简单的例子 http jersey java net documentation latest user guide html d0e2365
  • 如何在 Swift 中将键分配给 SKActions

    我希望有人能够帮助我解决这个问题 我似乎找不到一种方法来为removeActionWithKey 方法的Sprite Kit 的SKAction 分配键 我还尝试将操作分配给字典中的键 但程序无法识别键分配 因此返回零值 这是我尝试做的 v
  • C++中的动态对象[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我从c 转到c 我不明白什么是动态对象 所以想象一下你有 A 类并创建像 A a new A 这样的对象是正常的 但是对象 a 是什么 它和
  • 客户端服务器程序的多线程

    我正在尝试使用我一直在开发的客户端 服务器程序来实现多线程 我需要允许多个客户端同时连接到服务器 我目前有 4 个类 一个客户端 一个服务器 一个协议和一个处理线程的工作人员 以下代码是我为这些类编写的代码 套接字服务器类 public c
  • Jmeter 而控制器似乎没有将变量评估为数字

    我正在编写一个 jmeter 脚本 该脚本会不断加载数据 直到表达到指定的大小 我有一个 while 循环 其中有一个 HTTP 采样器来加载数据 然后是另一个带有 XPath 后处理器的 HTTP 采样器来检查表大小 它们调用两个不同的
  • get_dummies (Pandas) 和 OneHotEncoder (Scikit-learn) 之间的优缺点是什么?

    我正在学习不同的方法将分类变量转换为机器学习分类器的数字 我遇到了pd get dummies方法和sklearn preprocessing OneHotEncoder 我想看看它们在性能和使用方面有何不同 我找到了一个关于如何使用的教程
  • 树形视图闪烁?

    我开始知道 通过添加 TreeView BeginUpdate 将防止树视图闪烁 但是当我将其添加到我的项目中时 树视图的所有节点都会消失 任何人都可以告诉我为什么会发生这种情况 这是我使用 TreeView 的代码片段 BeginUpda
  • ios google登录,如何获取用户图片url?

    我正在研究 iOS Swift 谷歌登录 我在github上做了一个demo 我的演示项目 https github com tanggod GoogleSignIn git https github com tanggod GoogleS
  • 使用python删除某些文件

    我有一个 py 脚本 可以处理扩展名为 hgx 的文件 示例 test hgx 有很多这样的扩展名为 hgx 的文件 该脚本处理 test hgx 并创建一个新的 test bac hgx 并在重新运行时创建 test bac bac hg
  • 如何获取存储库 /network 的完整 github.com 可视化

    EDIT 这应该是给我母亲的礼物 如果需要的话 我会将它拖放并将一堆丝网印刷品缝合在一起 但是该资源必须位于网站上的某个地方 我相信至少这个网站上有人知道如何做到这一点 EDIT 所以我进一步研究了这个问题 发现如果你把 meta 放在网络
  • Windows 10 通用应用程序 - 类型同时存在于“Windows.Foundation.UniversalApiContract”中

    不知何故 我什至没有做任何事情 我在 Visual Studio 2015 中遇到很多错误 但我无法理解问题到底是什么 它说两个 Windows Foundation UniversalApiContract 库中都存在很多 类型 有人可以
  • 将 defer 与指针一起使用

    假设我有以下代码 func getConnection fileName string os File file err os Open fileName Check for error return file 我使用此函数打开一个文件 并
  • clang 对 C++ 11 lambda 的支持

    我有这个使用 lambda 的 C 11 代码 这是一个示例 include
  • 线程创建、CRT 和 DLL 是如何完成的?

    所以我知道 CreateThread 和 CRT 可能会导致内存泄漏 信号不起作用 应该使用 beginthread 或 beginthreadex 函数 在编写应用程序时这一切都很好 但是那些为其他应用程序编写 dll 等的人 无论是普通
  • django-mptt 引发 django.db.utils.IntegrityError:列“lft”中的空值违反了非空约束

    条件 Django 1 8 7 和 django mptt 0 8 0 有一个模型 class Tree mptt models MPTTModel name models CharField max length 120 unique T
  • AWS EB - 将所有流量重定向到 https

    我的nodejs应用程序部署在AWS EB上 我已经配置了 https 服务器并且工作正常 现在我需要将每个非 https 请求重定向到带有 www 的 https 作为前缀 如下所示 GET example com gt https ww
  • Flutter URL 启动器 Google 地图

    列表 dart import package flutter material dart import package url launcher url launcher dart class List extends StatefulWi
  • 算法渐近复杂度

    我想知道这个过程可以使用大 符号在以下算法中返回的最小值和最大值是多少 算法是 procedure F 1 n s 0 for i 1 to n j min max i A i n s s j return s 编辑 删除了原始答案 因为它