有人可以向我解釋爲什麼這個算法的遞歸部分有運行時間,如果n≤3,T(n)= {O(1) (n/2)表示T(n/2)的底部函數,其中Tf(n/2)表示Tf(n/2)+ Tc(n/2)+ O和Tc(n/2)代表頂替功能運行時解釋
的算法稱爲Shamos和主要步驟是:
- 如果N≤3找到強力的最接近點和止損。
- 找到一條垂直線V,以便將輸入集合劃分爲兩個大小爲 的不相交子集PL和PR,並儘可能相等。指向左邊或在行 屬於PL,並且指向右邊或在行上屬於PR。因爲 集合是不相交的,所以沒有一點屬於兩者。
- 遞歸地找到PL中最近對點的距離δL和PR中最接近的一對 的距離δR。
設δ= min(δL,δR)。輸入集P中的一對最近點的距離是在遞歸步驟中找到的點(即,δ)的 或者由PL 中的點與PR中的點之間的距離組成。
(a)唯一的候選人指出一個來自PL,而來自PR的唯一候選人必須位於距離線V左邊的距離爲δ的一條線的一條豎線條 中,並且距離V右邊的距離δ處的線(b)設YV是由不減少的y座標 (即,如果i≤j則YV [i]≤YV[j])排序的條帶內的點的陣列。 (c)從YV中的第一個點開始,除了最後一個步驟之外,檢查該點的距離 以及接下來的7個點(或者如果不多於7個,則剩下任何剩餘的點)。如果發現一對 對的距離嚴格小於δ,則將此距離分配給δ。
返回δ。 預先感謝您。
在進入算法的運行時間之前,你知道它應該做什麼嗎?你看到它是如何工作的? – Justin 2011-02-24 20:23:59
@Justin好(開始)點。 :-) – 2011-02-24 20:39:12
它使用概念性的掃描線和遞歸來找到歐幾里德空間中的最近點? – Patrick88 2011-02-24 21:09:40