[英]how to get any integer in a sorted array of size n that appear more than n/k times, given that 0 < k < n, and in O(k log n) time in java?
[英]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 + f ( n )時間。 這里C是一個常數因子,而f ( n )是一個比O(log n )增長慢的函數。
出於縮放目的,最壞的情況是f ( n )項沒有任何貢獻(即,當f ( n )= 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
(我的回答是f ( n )總是非負且單調增加。這不是Big-O表示法的數學要求,但在實踐中是一個合理的限制。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.