- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的任务是尝试找到给定 Java 方法的 big-O 和 big-Omega,但不知道如何找到。我知道 big-O 给出了上限,big-Omega 给出了下限,但是在查看程序(更不用说递归程序)时,我到底如何弄清楚这一点呢?预先感谢您,这对我的学习有很大帮助。
public static boolean goal(int i, int n){
if(n == 0){
if( i == 91) {
System.out.println("i = " + i +", DONE!!!");
return true;
}
else {
return false;
}
}
else if(i % 2 == 1){
if(goal(i + 53,n - 1))
{
System.out.println("i = "+ i + ", step # " + n);
return true;
}
else
return false;
}
else {
if( goal(i + 53,n - 1) || goal(i / 2,n - 1))
{
System.out.println("i = "+ i +", step # " + n);
return true;
}
else
return false;
}
}
最佳答案
每次递归迭代你都会将 n 减 1,当 N 达到 0 时递归停止,在最好的情况下你的 i 总是奇数,所以你进入第一个分支,所以这个算法的下界是 O(N)
上限是最坏的情况,是你的最后一个else
分支,当你可以调用goal
两次时,所以上限将为O(2^N)
关于java - 递归方法的 Big-O 和 Big-Omega,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376741/
这个问题在这里已经有了答案: What exactly does big Ө notation represent? (7 个答案) 关闭 3 年前。 Big theta 表示它既是大 o 又是大
我正在研究算法,但是找到时间复杂度的计算对我来说并不是那么容易,很难记住什么时候使用 log n、n log n、n^2、n^3、2n 等,我的疑问是关于如何在计算复杂性时考虑这些输入函数,它们是否有
对于这个问题,我认为它是真的,因为我认为这个问题基本上是在问 f(n) 大于或等于 g(n) 然后是 2^(f(n)) 大于或等于 2^(g(n)) 因此,如果我们采用 f(n) = 2n 和 g(n
这个证明可以用一个omega来完成: a : Z b : Z
我在求解证明时遇到问题。其中 t(n) = n0。但我不确定如何将其应用于证明以及如何操纵方程中的常数来找到 c 和 n0 并证明 t(n) 是 Omega(n^1.6)。 t(n) = (n-3lo
在尝试跨 4 个不同的断点设置正确的列宽以按我的需要进行设置时遇到问题。 当我使用 span-columns(3, 12) 时,我希望最大尺寸的总宽度为 300px,每个内容之间有 20px 的填充。
大欧米茄(Ω)的定义是这样的。 函数 f(n) = Ω(g(n)) ,当且仅当存在正常数 c 和 n0 使得 f(n) >= c*g(n) 对于所有 n,n>=n0. 这里有一个定理。 我想证明这一点
我有一个算法,我正在尝试找出解决最大子数组和问题的该算法的最佳情况(渐近表示法): -- Pseudocode -- // Input: An n-element array A of numbers
我有公式 a(n) = n * a(n-1) +1 ; a(0) = 0 如果没有主定理,我如何从中得到 Omega、Theta 或 O 符号,或者有没有人有一个很好的网站来理解解释 最佳答案 Mas
如果一个算法有两个子算法,对于给定的输入,子算法 A1 是最好的情况,子算法 A2 是最坏的情况。我怎样才能找到整体算法的复杂性?我的意思是 Ω(N) + O(N)=?我知道如果算法按顺序执行,则总体
使用 jeet.gs 我有两个类,每个类占用其父容器总宽度的一半。 像这样的东西(手写笔符号): .wrapper .alpha .beta col(1/2) 现在,当我像这样写一些
我目前正在设计一种布局,需要在移动设备、平板电脑和台式机上使用不同的布局。 移动 - 堆叠 平板电脑 - 两列布局 桌面 - 三列 我发现我的两列布局一直坚持到我的桌面布局,但事实并非如此。平板电脑
我目前正在使用 Bourbon Neat。我需要 .posts__post 在平板电脑上跨越 6 列中的 3 列 然后 2 of 6在桌面上及以上。但是我发现我的桌面媒体查询不工作,平板电脑查询仍然通
在家庭作业中,我们得到了一个叫做“七分搜索”的东西,它类似于二分搜索,但不是将数据结构减半,而是将其分割为 7 组。我们被要求通过编写递归方程并求解它来证明最坏情况下的运行时间在 BigTheta(l
使用 Susy 时,您可以在行的最后一项上放置一个“omega”标志以移除其 margin-right。例如,假设我们有一堆元素需要布置在一个 12 列的网格上: ... ... I'm the la
我正在阅读有关 Lambda-Cube 的信息,并且我对 System F-omega 特别感兴趣,它允许“类型运算符”,即类型取决于类型。这听起来很像 GHC 的类型族。例如 type family
我正在尝试使用 Omega 在 Coq 中进行证明。我花了很多时间在上面,但什么也没想到。不得不说我是Coq的新手,对这种语言不是很放心,也没有太多经验。但我正在努力。 这是我要证明的代码: Requ
当我运行 alpha 时,我在构造上有五个项目在它上面我得到以下结果没有任何错误 psych::alpha(construct, na.rm = TRUE, ti
谁首先证明了所有基于比较的排序至少是 Omega(n lg n)?这个下界有名字吗?例如SomeGuysLastName 定理? 最佳答案 我的“Introduction to Algorithms”
我知道大 oh 表示上限,omega 表示下限,但我看到的大多数地方都只有大 oh 符号。 例如。在线性搜索算法中,最坏的情况是大 oh(n)。但是,搜索没有。可以在第一位找到。所以不行。输入的数量是
我是一名优秀的程序员,十分优秀!