对数函数的渐近复杂度

2023-12-31

我知道,就复杂度而言,O(logn) 比 O(n) 快,O(n) 比 O(nlogn) 快,O(nlogn) 又比 O(n2) 快。 但是 O(n2) 和 O(n2log) 或 O(n2.001) 和 O(n2log) 呢:

T1(n)=n^2 + n^2logn

这个函数的大Oh和omega是多少?还有,什么是小哦? 相对:

T2(n)=n^2.001 + n^2logn

现在大了有什么区别哦? 我无法理解如何将 logn 与 n 的幂进行比较。例如,logn 大约是 n^0.000000...1 还是 n^1.000000...1?


O(n^k)O(n^k')对全部k, k' >= 0 and k' > k

O(n^2)会比O(n^2*logn)

请注意,您只能忽略常量,任何涉及输入大小的内容都不能被忽略。

因此,复杂度为T(n)=n^2 + n^2logn会是两者中更糟糕的一个,即O(n^2logn).


Little-oh

宽松地说,“小哦”是有保证的上限。是的,这叫小,而且限制比较多。

n^2 = O(n^k) for k >= 2 but n^2 = o(n^k) for k > 2

实际上,它是Big-Oh这占据了大部分的风头。


What about T(n)= n^2.001 + n^2logn?

We have n2.001 = n2*n0.001 and n2 * log(n).

To settle the question, we need to figure out what would eventually be bigger, n0.001 or log(n).

It turns out that a function of the form nk with k > 0 will eventually take over log(n) for a sufficiently large n.

Same is the case here, and thus T(n) = O(n2.001).

Practically though, log(n) will be larger than n0.001.

(103300)0.001 < log(103300) (1995.6 < 3300), and the sufficiently large n in this case would be just around 103650, an astronomical number.

Worth mentioning again, 103650. There are 1082 atoms in the universe.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系: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 为这里的坏例子道歉 我已经更新
  • 给定两个(大)点集,我如何有效地找到彼此最接近的点对?

    我需要解决一个计算问题 该问题归结为搜索两个集合之间最接近的点对 问题是这样的 给定欧几里德空间中的一组点 A 和一组点 B 找到所有对 a b 使得 b 是 B 中与 a 最近的点 a 是 A 中与 b 最近的点 集合 A 和 B 的大小
  • 以一定角度遍历二维数组

    通常我们按行或列遍历数组 但这里我想以角度遍历它 我会尝试解释我的意思 因此 假设角度是 45 度 那么它会搜索为 0 0 then 0 1 1 0 then 0 2 1 1 2 0 等等 抱歉 无法上传图像 因为我是新用户 不允许这样做
  • 4 x 3 锁图案

    我遇到了这个 它要求计算在 4x3 网格中可以制作特定长度的锁定图案的方式数 并遵循规则 可能有些点不能包含在路径中 有效的模式具有以下属性 图案可以使用第一次接触的点序列来表示 与绘制图案的顺序相同 从 1 1 到 2 2 的图案与图案不
  • 加密成本高,解密成本低

    我希望该用户 攻击者加密数据并发送给服务器 现在我想要一种与标准算法完全相反的算法 使用快 难以解密 即很难使用服务器发送的密钥来加密密码等数据 以防止随机攻击 但很容易解密这样服务器在验证用户时消耗的时间非常少 但是对于攻击者来说 每次使
  • 合并字符数组中的最小重复次数

    假设我有两个数组 我想合并它们 以便合并后的数组具有最小重复次数 例如 x x 是重复 arr1 x d d m f m arr2 d d x f f m 唯一的条件是在合并数组中 元素来自arr1 and arr2必须出现在各自的订单中a
  • 如何从二叉搜索树中均匀随机地返回节点?

    给定一个 BST 可能平衡也可能不平衡 如何能够均匀地随机返回 任何 节点 一个限制是您不能使用外部索引数据结构 您必须以每个节点都有平等被访问的机会的方式遍历树 这个问题让我困惑了好一阵子 如果我们确实可以使用外部哈希表 指针 我们可以对
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • 使到 n 个点的集合的欧氏距离之和最小的点

    我有一组点W x1 y1 x2 y2 xn yn 在 2D 平面上 你能找到一种算法 将这些点作为输入并返回一个点 x y 在 2D 平面上 距以下点的距离之和最小W 换句话说 如果 di Euclidean distance x y xi
  • C 中的菱形数组排序

    我有以下 C 语言作业 我基本上需要一种方法而不是解决方案 我们有一个 13 x 13 的数组 在数组中 我们有一个需要考虑的菱形形状 该菱形之外的所有内容都初始化为 1 不重要 下面的 5 x 5 数组示例 x x 1 x x x 2 2
  • 字符串排序真的是 O(n^2logn) 吗? [复制]

    这个问题在这里已经有答案了 我读了以下内容 排序需要 O NlogN 那么它怎么是 O N 2logN 我们在这里想念的是 两个字符串的比较不是 O 1 在最坏的情况下 需要 在 所以最终的复杂度是O N 2logN 它是否正确 我一直认为
  • 编程 Pearls - 随机选择算法

    Programming Pearls 第一版第 120 页介绍了从 N 个整数总体中选择 M 个等概率随机元素的算法 InitToEmpty Size 0 While Size lt M do T RandInt 1 N if not Me
  • 使用主方法求解 T(n) = 2T(n/2) + n/log n 和 T(n) = 4T(n/2) + n/log n 之间的差异

    我最近偶然发现了一个资源 其中 2T n 2 n log ntypeMM 宣布复发无法解决 我接受它作为一个引理 直到今天 另一种资源被证明是矛盾的 在某种意义上 根据资源 下面的链接 其中的 Q7 和 Q18 是建议 分别在问题中的1和2
  • Codility 钉板

    尝试了解 Codility NailingPlanks 的解决方案 问题链接 https app codility com programmers lessons 14 binary search algorithm nailing pla
  • 如何确定算法函数的复杂度?

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

    我想为以下问题场景编写一个算法 根据元素周期表元素的名称 找到可以组成的最大单词 符号如Na Ne等应被视为单个元素 这是在一家知名公司的求职面试中被问到的 有人可以帮我解决这个问题吗 我认为更好的方法是检查字典中的每个单词 看看是否可以从
  • 在 C++ 中通过引用传递 std 算法谓词

    我正在尝试从 a 中删除元素std list并保留已删除元素的一些统计信息 为此 我使用列表中的remove if 函数 并且我有一个谓词 我想使用这个谓词来收集统计数据 这是谓词的代码 class TestPredicate privat
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • 将字符串中的“奇怪”字符转换为罗马字符

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

    void f int n for int i 1 i lt n i if i int sqrt n 0 for int k 0 k lt pow i 3 k do something 我的思考过程 执行if语句的次数 sum i 1 to

随机推荐

  • 实例变量定义和实例块

    我有以下代码 s Hello String s 这编译得很好 这意味着变量定义在实例块之前执行 但是 如果我使用以下代码 它不会编译 错误 非法前向引用 s Hello String ss s String s 因此 不可能在变量之前的实例
  • setwd() 在当前工作目录中

    我有一个文件夹列表 每个文件夹中都有一个与 R 相同的脚本 必须在文件夹中的文件上运行 我编写了一次脚本并将脚本复制到每个文件夹中 问题是我有大约 100 个文件夹的列表 因此我不可能手动在当前工作目录中 setwd 我想知道是否可以设置当
  • Arm GCC 链接器:如何将数据放在 (rw) 非易失性存储器中的绝对地址处

    我面临以下问题 我正在对 ARM cortex M4 微控制器进行编程 我希望它具有 IP 地址 网络掩码 网关等的默认值 该默认值应该可以通过串行通信进行更改 并且更改应该是持久的 例如 IP 地址和网络掩码的默认值为 192 168 1
  • AngularJS 按下按键时更改多行选择 ng-grid 属性

    我在视图中定义了以下网格 div class gridStyle hide div 我想仅在按下 ctrl 键时才允许多重选择 所以我在控制器中将 multiSelect 属性定义为 false scope resultsOptions d
  • mailto:带附件的链接

    我为我的客户制作了一个应用程序 它提供具有以下示例结构的 zip 文件 index html files file pdf inc style css 基本上 用户将使用名为 Sites 2 Go 的应用程序将 zip 文件传输到他们的 i
  • SQL Server 中什么被视为“大”表?

    我有一个表 其中有 1000 万条记录 这算是很多记录吗 我应该担心搜索时间吗 如果没有 它会继续增长 那又怎样is算一张大桌子吗 表大小对搜索时间的影响有多大 我可以采取哪些措施来改善这些问题 最好是在它们成为问题之前 大 就像 聪明 它
  • v8旧空间和新空间是什么?

    Node js据我所知 有两个参数来控制内存分配 max new space size and max old space size 提到的具体是什么NEW SPACE and OLD SPACE things 在分代垃圾收集器 V8 使用
  • 创建索引视图时如何引用表两次?如果没有它,我可以基于 2 个表和多行强制执行唯一性吗?

    EDIT 添加了我试图禁止的示例数据 这个问题类似于 无法在视图上创建聚集索引 因为我两次引用同一个表 有什么解决方法吗 https stackoverflow com questions 1011595 cannot create a c
  • 具有公共抽象基类的对象的集合

    我有一个名为 generic 的抽象类 实现如下 public abstract class generic public string creatorID get set public string itemID get set publ
  • 用对象的属性来生成函数

    在 PowerShell 中 您可以将多个参数传递给函数或 cmdlet 方法是将它们包装在哈希表变量中 然后传递前缀为该变量 代替 是否可以使用作为另一个对象的属性的哈希表 即作为一个衬垫 进行splat 例如下面我首先必须分配属性 te
  • mediaelement 中的 UWP YouTube 播放器

    我目前正在开发一个 UWP youtube 播放器 但在播放实际视频时遇到了一些大问题 我正在使用它在媒体元素中播放 YouTube 视频 using MyToolkit Multimedia var url await YouTube G
  • 具有依赖项的 CocoaPods 框架 - 在框架模块内包含非模块化标头

    我正在尝试构建一个具有其他 pod 依赖项的私有 CocoaPods 框架 其中 我将 Parse 添加为 podspec 文件中的依赖项 s dependency Parse 然而 当我尝试将其清理干净时 pod lib lint MyP
  • ASP.NET MVC 领域的最佳实践

    我目前正在构建一个 CMS 系统 我需要一种简单的方法来包含或排除组件 我的第一个想法是使用 asp net mvc 区域功能来识别每个组件本身 但从我看来 区域特征有problems https stackoverflow com que
  • 有什么理由不使用 SQLObject 而不是 SQLAlchemy? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我预计不需要比基本 CRUD 类型功能更多的功能 我知道 SQLAlchemy 更灵活 但 sqlobj
  • 重新启动 EC2 实例时会发生什么?

    当我重新启动 EC2 实例时 我是否会再次获取初始映像 或者保留重新启动前的硬盘状态 计费会发生什么情况 该小时是否重新开始 或者我是否继续使用重新启动时所在的小时的一部分 重新启动实例就像重新启动 PC 硬盘不受影响 您不会返回到映像的原
  • macOS:检测所有应用程序启动,包括后台应用程序?

    这里是新手 我正在尝试为应用程序启动创建一个小型侦听器 并且我已经有了 almon m import
  • 使用 Jenkins 运行 Maven 部署时出现错误“无法传输元数据”

    我有 2 个 Maven 项目 它们每天由 Jenkins 构建部署在 Nexus 快照存储库中 对于一个项目来说 一切正常 对于第二个 每次 Jenkins 运行时我都会出现以下错误mvn deploy INFO maven deploy
  • bash:“which adb”不返回任何内容,但“command -v adb”返回我期望的内容

    这是一个一直困扰着我的 bash 怪事 我在 OSX 上 我已经安装了android SDK 结果是adb工具位于我的主目录中的一个文件夹中 该文件夹出现在我的路径中 如报告所述env as Development android sdk
  • Yammer with Python - 检索提要

    我正在尝试使用 Python 下载我的 yammer feed 实际上尝试在 R 中执行此操作 但也无法弄清楚 但我无法导入 yampy 模块 我在命令行中使用 python m pip install yampy 安装了 yampy 但是
  • 对数函数的渐近复杂度

    我知道 就复杂度而言 O logn 比 O n 快 O n 比 O nlogn 快 O nlogn 又比 O n2 快 但是 O n2 和 O n2log 或 O n2 001 和 O n2log 呢 T1 n n 2 n 2logn 这个