如何计算big-o表示法的多项式f(x)?

时间:2018-11-12 03:43:47

标签: java big-o polynomials

嗨,我是Java课程的学生,我们只介绍了Big-O符号。

我了解Big-O的一般情况,这种情况在最坏的情况下发生,然后它计算了代码的效率,并且我了解了每个进程的一般运行时。我可以说下面的代码的运行时为O(n ^ 2)。

我遇到的麻烦是计算多项式。现在,我只看一个代码片段并了解其效率,但是我不知道该片段的f(x)或其引用函数(g(x))。

在下面的代码中找到f(x)和g(x)可以得到帮助吗? (仅需要找到答案的过程,不需要确切的答案)

链接到涉及该主题的文档或视频也将有所帮助。谢谢!

public static int num_occurrences(int n) 
{
    int count = 0;

    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++) 
        {
            if ( i == j ) 
                continue;

            if (strings[i] == strings[j])
                count++;
        }
    } 
    return count;
}

1 个答案:

答案 0 :(得分:0)

对于import socket ip_list = [] for info in socket.getaddrinfo('reddit.com', 80): ip_list.append(info[-1][0]) 的每个值,内部循环正好运行i次。

n时,i=0
j = 0,1,....,n-1 (n times)i=1 .......等等

因此,步骤总数为:
j = 0,1,....,n-1 (n times) = n + n + n + n + n+ ......+ n = n*n

因此运行时将为n^2

您可能想看看Time complexity of nested for-loop

编辑:

O(n^2)

我们有for(int i = 0; i < n; i++) //<---- cost A*n^2 time { for(int j = 0; j < n; j++) { if ( i == j ) continue; if (strings[i] == strings[j]) count++; } } return count; //<---- cost constant time

嵌套f(x) = Ax^2 + C操作将花费loop,而Ax^2语句也将花费一定的时间,例如return