小编Gar*_*ick的帖子

给定代码的时间复杂度是多少?

While(n>=1)
{
    n=n/20;
    n=n/6;
    n=10×n;
    n=n-10000;
}
Run Code Online (Sandbox Code Playgroud)

我试过这样=>

在此循环中,N减少N/12-10000.因此,时间复杂度为O(log N).

algorithm time-complexity

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

邻接表列表的时间复杂度?

我正在通过这个链接进行邻接列表表示.

http://www.geeksforgeeks.org/graph-and-its-representations/

我对代码的某些部分有一个简单的疑问,如下所示:

// A utility function to print the adjacenncy list representation of graph
void printGraph(struct Graph* graph)
{
    int v;
    for (v = 0; v < graph->V; ++v)
    {
        struct AdjListNode* pCrawl = graph->array[v].head;
        printf("\n Adjacency list of vertex %d\n head ", v);
        while (pCrawl)
        {
            printf("-> %d", pCrawl->dest);
            pCrawl = pCrawl->next;
        }
        printf("\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

因为,这里执行每个Vwhile循环,比如说dd是每个顶点的度数.

所以,我认为时间的复杂性就像

d0 + d1 + d2 + d3 ....... +dV where di is the degree of each …
Run Code Online (Sandbox Code Playgroud)

algorithm breadth-first-search time-complexity adjacency-list

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

以下使用指针算法的语句是否有效?

char array[8] = "Raining";
Run Code Online (Sandbox Code Playgroud)

我认为以下所有相关陈述的评论都符合我的理解.

char *p1 = array + 7;      --> points to '\0'

char *p2 = array + 8;      --> undefined behaviour

char *p3 = array + 9;      --> undefined behaviour

char *p4 = array + 10;     --> undefined behaviour
Run Code Online (Sandbox Code Playgroud)

我的理解是否正确?

c arrays pointers pointer-arithmetic undefined-behavior

4
推荐指数
2
解决办法
216
查看次数

fork() 在这里如何工作?

{ \n    if(fork() && fork()) \n    { \n        fork()\xcd\xbe \n    } \n\n    if(fork() || fork()) \n    {\n        fork()\xcd\xbe\n    } \n\n    printf("hello")\xcd\xbe \n    return 0\xcd\xbe \n} \n
Run Code Online (Sandbox Code Playgroud)\n\n

我不知道这里的行为方式以及hello将被打印fork()多少次。\n我只知道这将为 1 个父级生成总共 3 个进程,同样,将为 1 个父级生成 3 个进程。
fork() && fork()fork() || fork()

\n\n

在第一个if条件之后,创建了 3 个进程,只有父进程会进入 if 块。现在总共有 4 个进程。现在,如何进一步进行,我完全被搞砸了?

\n\n

如果可以的话,请展示一个树形图。

\n

operating-system fork parent-child

4
推荐指数
1
解决办法
1万
查看次数

以下代码的时间复杂度是多少?

For(I=1 ; I<=n ; I++)
{
    For(J=1 ; J<=I ; J++)
        {
             For(K=1 ; K<=n^5 ; K=15 × K)
                 {
                      x=y+z;
                 }
        }  
}
Run Code Online (Sandbox Code Playgroud)

根据我似乎是O(N ^ 2 log N),但是当我分析k循环时,它没有跟随Log N,这让我感到困惑,

algorithm math loops for-loop time-complexity

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

2 ^ n`是`3 ^ n的顺序

2^n是的顺序3^n.

这两个功能相关2^n = O(3^n).

或者更恰当地说,我们可以说2^n = o(3^n).

我怀疑这究竟是什么命令.是说同样的渐近秩序?

Wikipidia,大O符号说,这两个函数没有相同的顺序.

Plz,澄清我,这里的实际订单是什么.

我是算法的新手,所以如果我问的是愚蠢的问题,那么请纠正我.

algorithm big-o

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

找出既不是第k个最大值也不是第k个最小值的元素的时间复杂度?

N个不同的数字不按排序顺序给出.选择一个既不是第k个最小值也不是第k个最大值的数字需要多长时间?

我试过这样=>

取最初的k + 1个数字并在O(k log k)中对它们进行排序.然后在该排序列表中选取第k个数字,该数字既不是第k个最小值也不是第k个最大值.

因此,时间复杂度= O(K log k)

示例=>

选择既不是第二最小值也不是第二最大值的数字.

array [] = {3,9,1,2,6,5,7,8,4}

取最初的3个数字或子数组= 3,9,1,排序的子数组将是= 1,3,9

现在拿起第二个元素3.现在,3不是第二个最小值,也不是第二个最大值.

现在,时间复杂度= O(k lg k)= O(2 lg 2)= O(1).

sorting algorithm time-complexity

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