簡體   English   中英

如何計算大小為625的數組的O(log n)處理時間?

[英]How to calculate O(log n) processing time on an array of size 625?

假設處理數組的算法為O(log n)。 該算法最多需要12 µs來處理大小為25的數組。所有條件大約相等,算法最多要花多長時間來處理625?

我是否可以通過將625/25 = 25除以然后乘以每25個元素需要的12微秒((625/25)* 12 = 300微秒)來解決這個問題,或者還有更多呢? 例如,我是否需要使用log2(625)+ 1計算最大比較數並將其用於計算中? 任何幫助表示贊賞。

編輯:這不是一個作業問題。

如果該算法花費O(log n )時間,則處理C 元素需要C log n + fn )時間。 這里C是一個常數因子,而fn )是一個比O(log n )增長慢的函數。

出於縮放目的,最壞的情況是fn )項沒有任何貢獻(即,當fn )= 0時),因此讓我們忘記該項。 我們只考慮C log n

我們知道

C log 25 = 12µs

因此

C = 12µs /對數25

現在,如果我們插入625,我們將得到:

C log n =(12µs / log 25)log 625 = 24µs

(我的回答是fn )總是非負且單調增加。這不是Big-O表示法的數學要求,但在實踐中是一個合理的限制。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM