Java 如何计算big-o表示法的多项式f(x)?
大家好,我是一名Java课程的学生,我们刚刚讨论了Big-O表示法 我了解Big-O的一般情况,它采用最坏的情况,然后计算代码的效率,我了解每个进程的一般运行时间。我可以说下面代码的运行时间是O(n^2) 我遇到的问题是计算多项式。现在,我只看一个代码片段,了解它的效率,但我不知道代码片段的f(x)或它的引用函数(g(x)) 我可以得到以下代码的f(x)和g(x)的帮助吗?(只有找到答案的过程是必要的,不需要精确的答案) 与此主题相关的文档或视频链接也会有所帮助。谢谢Java 如何计算big-o表示法的多项式f(x)?,java,big-o,polynomials,Java,Big O,Polynomials,大家好,我是一名Java课程的学生,我们刚刚讨论了Big-O表示法 我了解Big-O的一般情况,它采用最坏的情况,然后计算代码的效率,我了解每个进程的一般运行时间。我可以说下面代码的运行时间是O(n^2) 我遇到的问题是计算多项式。现在,我只看一个代码片段,了解它的效率,但我不知道代码片段的f(x)或它的引用函数(g(x)) 我可以得到以下代码的f(x)和g(x)的帮助吗?(只有找到答案的过程是必要的,不需要精确的答案) 与此主题相关的文档或视频链接也会有所帮助。谢谢 public static
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;
}
公共静态int num_出现次数(int n)
{
整数计数=0;
对于(int i=0;i
对于i
的每一个值,内部循环正运行n次。
当i=0
,j=0,1,…,n-1(n次)
当i=1
,j=0,1,…,n-1(n次)
…等等
因此,步骤总数为:
n+n+n+n+n+…+n
=n*n
=n^2
因此,运行时将是O(n^2)
你可能想看看
编辑:
for(int i=0;if(x)
通常是算法的运行时间,所以你可以通过上面的计算找到它。我不知道如何从上面的计算中得到以下形式:f(x)=Ax^2+Bx+C,你介意进一步解释吗?@Jarack检查更新的答案
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