如何计算大O? [关闭]
Posted
技术标签:
【中文标题】如何计算大O? [关闭]【英文标题】:How to calculate Big-O? [closed] 【发布时间】:2018-01-06 00:25:34 【问题描述】:public long seriesLoop()
long answer = a;
for (long i = 1; i < n; i++)
long delta = a;
for (long j = 0; j < i; j++)
delta *= r;
answer += delta;
return answer;
public long seriesClosedForm()
return (long) (a * (1 - Math.pow(r, n)) / (1 - r));
这两种方法的 Big-O 表示法是什么? 为什么?我们如何计算算法的大 O?
【问题讨论】:
我投票结束这个问题,因为这是作业转储。 你根据循环计算大O。一个循环 = O(n)。嵌套循环 = O(n^2) @j.pei 请阅读此 *** thread。这会让你对大 O 有一个清晰的认识。O(...)
是最坏的情况。每个循环给出 n 的因子。
【参考方案1】:
对于第一种方法,它是 n*n = n^2。由于有两个循环,对于每个循环 O(n) 是 n,因为您正在遍历数组中的每个项目。
第二个是常数o(1)。
【讨论】:
是的,这是我的答案。但是我的导师说第一个应该是O(n),而第二个实际上不是O(1),它是O(log n)。我不知道为什么..以上是关于如何计算大O? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何关闭wps热点,如何关闭wpscenter,如何关闭我的wps