我对Big O测量和T(n)领域完全陌生。对于我的任务中的第一个问题,我试图推导出以下代码的T(n)函数:
for (int k=3; k<n; k++) {
for (int i=2; i<10; i++) {
for (int j=n/2; j<n; j++) {
int a = k*i*j;
System.out.println(a);
}
}
}
这意味着我必须找出完成该功能所需的步骤数。我决定8,因为中间for循环,但由于我是Big O和T(n)业务的新手,我相信我错了。我想它可能是10.你应该给我一个简单的解释,并为每个函数解决Big O测量:
T(n) = 3^n+3 + n^3
T(n) = nlog2n + n^3
如果解释这个不起作用,也许你应该给我一个我可以遵循的网站链接,它提供了我正在寻找解决这类问题的同样好的解释。你能帮我吗?
答案 0 :(得分:0)
如果T(n)表示theta(n),那么你基本上是在寻找函数的紧束缚。对于这个简单的功能,您实际上可以直接通过计数找到它。
对于j循环,它执行n / 2次,
对于I循环,它执行10-2次
对于k循环,它执行n-3次
所以总数是(n / 2)*(8)*(n-3)=&gt; T(n ^ 2)