标签: asymptotic-complexity

指数和对数复杂度的大O表示法

关于大O符号有很多问题,但我没有找到这个问题的明确答案.

我们写道:
O(5n)= O(n)

O(3n ^ 2 + n + 2)= O(n ^ 2)

我们能写出:
O(2 ^(2n))= O(2 ^ n)?

对数复杂度相同:O(n log(4n))= O(n log(n))?

big-o asymptotic-complexity

0
推荐指数
1
解决办法
5566
查看次数

O(n ^ 2)的渐近下界

P中是否存在已证明O(n ^ 2)或更高的渐近下界的问题?(n是问题实例可以表示的位数).这不是一个功课问题,只是好奇心.

algorithm asymptotic-complexity lower-bound

0
推荐指数
1
解决办法
375
查看次数

渐近。如果 f(n) = theta(g(n)) 并且 g(n) = theta(h(n)),那么为什么 h(n) = theta(f(n))

它是 f(n)=theta(h(n)) 因为 theta 是可传递的。但是任何人都可以解释为什么 h(n)=theta(f(n))。

algorithm time-complexity big-theta asymptotic-complexity

0
推荐指数
1
解决办法
5267
查看次数

在if子句中找到复杂性

假设我有一个if子句

if (!f(x))
{
   g(x);
}
Run Code Online (Sandbox Code Playgroud)

f(x)= O(x ^ 3)的复杂度和g(x)= O(x ^ 2)的复杂度.在这种情况下,整体复杂性是多少?O(x ^ 5)?还是O(x ^ 3)?

我想增加问题的大小.

while(z(x))
{
  for(p(x))
  {
     if (!f(x))
     {
       g(x);
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

其中,z(x)= O(x ^ 5),p(x)= O(x),f(x)= O(x ^ 3),g(x)= O(x ^ 2)

algorithm complexity-theory time-complexity asymptotic-complexity

0
推荐指数
1
解决办法
50
查看次数

深度优先搜索的 Big-O = O(V+E) 怎么样?

我试图了解DFS 的复杂性如何/为什么是 O(V+E)。这是我分析伪代码迭代 DFS 复杂性的尝试。

DFS(G, t)
{

1   stack S = new empty Stack of size G.|V|  ... O(1)
2   S.push(t)                                ... O(1)

3   while(S is not Empty)                    ... O(|V|), this will always be =<|V|
    {
4       u = S.pop()                          ... O(1)

5       if(u.visited = false)                ... O(1)
        {
6            u.visited = true                ... O(1)

7            for-each edge (u,v) in G.E      ... O(|E|), this will always be =<|E|
8                if(v.visited = false)       ... O(1)
9                    S.push(v) …
Run Code Online (Sandbox Code Playgroud)

algorithm big-o time-complexity nested-loops asymptotic-complexity

0
推荐指数
1
解决办法
5127
查看次数

这个短代码的运行时复杂性是多少?

我在编程实践网站上找到了这个解决方案,它说复杂性是O(N).但是,它看起来更像是O(N ^ 2).有人可以告诉我为什么这是O(N)?

public static void transposeMatrix(int[][] matrix) {
    int n = matrix.length - 1;
    int temp = 0;
    for(int i = 0; i <= n; i++){
        for(int j = i+1; j <= n; j++){
            temp = matrix[i][j];
            matrix[i][j] = matrix[j][i];
            matrix[j][i] = temp;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

algorithm asymptotic-complexity

0
推荐指数
1
解决办法
57
查看次数

如何解决重现A(n)= A(n-1)+ n*log(n)?

鉴于再次发生:
A(n) = A(n-1) + n*log(n).
我如何找到时间复杂度A(n)

algorithm recurrence time-complexity asymptotic-complexity

-1
推荐指数
1
解决办法
99
查看次数

命令式编程和函数式编程的效率

我对IP和FP的性能有疑问.假设我有一个计算第n个Fibonacci数的函数.

在命令式编程中,我可以选择使用迭代方式,递归或动态编程来计算第n个Fibonacci数.当然,与递归渐近相比,迭代方式和动态编程将表现得更好.

在函数式编程中,假设没有涉及的状态,那么我只能以递归的方式进行.

在这种情况下,这并不意味着功能编程在效率方面与渐进式编程相比总是表现得相同或更慢(渐近)?

现实世界的函数式编程如何处理这个问题?

algorithm performance functional-programming imperative-programming asymptotic-complexity

-2
推荐指数
1
解决办法
600
查看次数

证明f(n)总是O(f(n-1))

假设当n变为无穷大时f(n)变为无穷大.

这是一个家庭作业问题,我希望得到一个想法/指导,而不是完整的答案.

math big-o asymptotic-complexity

-2
推荐指数
1
解决办法
95
查看次数

最小算法的渐近时间复杂度作为n的函数

我们已经知道一些算法的渐近时间复杂度是n的函数,如

O(log*n),O(log n),O(log log n),O(n ^ c),0 <c <1,....

我可以知道作为n的函数的最小算法的渐近时间复杂度是多少?

  • 更新1:我们用n来寻找渐近时间复杂度函数.O(1)是最小的,但它没有n.
  • 更新2:O(1)是我们可以进行的最小时间复杂度,但是n的下一个最小的众所周知的函数是什么?据我研究:

    O(alpha(n)):逆Ackermann:使用不相交集的每次操作的摊销时间

    或O(log*n)迭代对数Hopcroft和Ullman在不相交集上的查找算法

algorithm big-o time-complexity asymptotic-complexity

-3
推荐指数
1
解决办法
648
查看次数

O(n ^ 3)真的比O(2 ^ n)更有效吗?

我的算法类的作业声称O(n 3)比O(2 n)更有效.

当我将这些函数放入图形计算器时,对于非常大的n(从n = 982左右开始),f(x)= 2 x似乎始终更有效.

考虑到对于函数f(n)= O(g(n)),对于大于某个n 0的所有n,它必须更小,这不意味着从n = 982我们可以说O(2 n)效率更高?

algorithm big-o asymptotic-complexity

-5
推荐指数
1
解决办法
3769
查看次数