- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试理解以下问题的正确答案:
答案都是正确的,因为 lgn 可以说是 log8n 的 theta,它包括所有三个选项。
这让我感到困惑,因为对于 n 的任何正值,logn 都会大于 log8n,对吗?说 logn 与 log8n 紧密绑定(bind)意味着 logn 既是 log8n 的 Big O 又是 log8n 的 Big Omega。或者用简单的英语来说,logn 不大于 k1 x log8n 且不小于 k2 x log8n。
我的回答是 logn 是 log8n 的 Big Omega,因为它永远不会花费更少的时间。为什么这是错误的?
最佳答案
假设 lg
表示自然对数,则有 log_8(n)=lg(n)/lg(8)
因此这两个函数的区别仅在于乘法因素。
现在,让我们检查一下来自 this table 的 Big O
案例,其中 f
是 lg
而 g
代表 log_8
。如果我们设置k=lg(8)
,那么第三列的条件就自动满足了。换句话说,条件“|f| 受 g 限制(直到常数因子)”得到满足,因为从宽泛的角度来说,这两个函数实际上是相同的直到常数(乘法)因子。
同样的推理适用于 Big Omega
,因此也可以获得 Big Theta
(您可以直接使用 k1=k2=lg(8)
在其定义中)
关于algorithm - 为什么lgn和log8n的渐近关系等价于logn为Θ(log8n)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42804322/
谁能证实这个算法的复杂度是 O(n^2)? a = 0 b = 0 c = n while (b <= c) { for (j = b; j<=c; j++) { a
问题(数据结构): 我们应该使用哪种表示来计算 O(|V|+|E|) 中图顶点的入度?这应该如何在 Khan 的算法中保持而不损害运行时间(渐近地)?证明您的主张。 我的尝试:我们应该使用矩阵表示来计
在某些情况下,对问题的蛮力方法具有复杂性,在性能方面不够好。 让我们举个例子西塔(n^2)。 使用递归方法可以将其改进为 Theta(nlogn)。 显然,渐近地人们会选择使用递归方法,因为对于越来越
我在 C++11 中使用 std::unordered_map。我在字符串键和复合数据类型之间做出决定(比如将两个 long 放在一个结构中以保存 UUID)。 当 hashmap 使用 std::s
它是 f(n)=theta(h(n)) 因为 theta 是可传递的。但是谁能解释为什么 h(n)=theta(f(n))。 最佳答案 通过定义扩展 Big-O 符号通常会使事情变得简单。 关于alg
我是一名优秀的程序员,十分优秀!