我已經寫了一個函數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