簡體   English   中英

用Master定理計算算法的漸近時間復雜度

[英]Using Master theorem to calculate asymptotic time complexity of algorithm

問題:您有一種算法可將n大小問題划分為六個子問題 ,大小為原始大小的四分之一 對於划分算法,制作100步並合並75n 什么是算法的漸近復雜度?

所以主定理的公式

對於這個問題a = 6b = 4 ,但我不知道在哪里適合除法和合並信息。

可接受的結果是: On 1.2924 ), omegan 1.2 )和O (1.001 n

每次解決子問題時,都必須將當前實例划分為更多子問題(成本= 100步)。 然后,您必須合並子問題的結果(成本= 75n步)。

這意味着f(n) = 75n + 100因為f(n)表示求解單個子問題的成本(不包括遞歸的成本)。

f(n) = 75n + 100O(n)

因此,你看: T(n) = 6 * T(n/4) + O(n)

我們知道:

a = 6
b = 4
f(n) = 75n + 100

接下來,我們計算log_b(a) = log_4(6) = log(6)/log(4) = 1.2924...

讓我們考慮一下主定理的情況I:

如果f(n) = O(n^c)其中c < log_b(a) ,則T(n) = Ө(n^(log_b(a))

我們知道f(n) = O(n^1) ,所以讓我們試試c = 1

c < log_b(a) 好吧, 1 < 1.2924... ,是的。

因此, T(n) = Ө(n^(log_b(a)) => T(n) = Ө(n^1.2924...)

暫無
暫無

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

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