0
我必須計算搜索矩形矩陣元素的算法複雜度。它使用分而治之。對於方陣,我的時間函數變成a * T(n/b)+ O(n^2)。但是對於矩形矩陣,如果必須將它劃分爲4個子矩陣,我不知道如何表示分割。它會是* T(m * n/4)+ O(n)?矩陣矩陣複雜度
我必須計算搜索矩形矩陣元素的算法複雜度。它使用分而治之。對於方陣,我的時間函數變成a * T(n/b)+ O(n^2)。但是對於矩形矩陣,如果必須將它劃分爲4個子矩陣,我不知道如何表示分割。它會是* T(m * n/4)+ O(n)?矩陣矩陣複雜度
你沒有描述你的算法,所以不可能精確地回答這個問題。但我會嘗試假設算法是這樣的:
m = 1
或n = 1
然後處理矩陣O(m * n)
時間。m > 1
和n > 1
)分矩陣劃分成大小爲不多然後[m/2]x[n/2]
,其中[y]
是最小的整數不小於y
四個matricies。O(m * n)
時間。在用於時間複雜這種情況下經常方程將是
允許解決它
T(m, n) = O(m * n) +
4 * O([m/2] * [n/2]) +
4^2 * O([m/4] * [n/4]) +
... +
4^L * O([m/2^L] * [n/2^L]), where L = [log(min(m, n))]
T(m, n) = O(m * n + ... + 4^L * [m/2^L] * [n/2^L]) =
= O(m * n + ... + 2^L * [m/2^L] * 2^L * [n/2^L] =
= O(m * n + ... + m * n (L times)) =
= O(L * m * n) = O(m * n * [log(min(m, n))])
所以問題的答案是
T(M,N)= O(M * N * [日誌(分鐘(M,N))]),其中log
代表一個以2爲底的對數和[y]
代表ceil
功能。
這個問題似乎是題外話題,因爲它應該發佈在http://cs.stackexchange.com/ – hivert
你應該描述你的算法,以便我們可以推斷它的時間複雜性。 – citxx