我已经写了一个函数append()
在Java中,我需要通过O(N)和Θ(N)来分析它的运行时复杂度。分析函数运行时复杂度
这是原题:
假设
append()
的运行时间复杂度为t = O(N)
,这意味着t
也可以通过t = C*N
表示。 (因为C
是一个常数)因此
(t/N) = C
。如果,例如,
t = O(N^2)
,然后(t/N^2) = C
等等。使用此方法找到
append()
运行时coplexity。
于是我就append()
N次3个不同N
S:1,000
,5,000
,10,000
。
long start = System.currentTimeMillis();
for(i = 0; i < N; ++i) {
append();
}
long end = long start = System.currentTimeMillis();
System.out.println(end - start);
和我写下end-start
这是以毫秒为单位的运行时间。
现在,我怎样才能使用这个信息,以获得append()
时间coplexity?
在此先感谢!
你已经有了时间复杂性,这是O(N)的事情。你问的是不变的,这是一个模糊的计算复杂性**最好的** - 你为什么这样做?如果您想比较真实世界的性能,可以跳过该部分并直接比较测量的时间。这就是所谓的基准。 – delnan