我知道這可能是重複的,但它似乎是'最近的一對點'算法的變體。最近的一對點算法變化
給定一組的在單位正方形Ñ點(X,Y)以及距離d,找到所有一對點,使得它們之間的距離爲至多d。
對於大否蠻力方法不是一個選項。除了「橫掃線」和「分而治之」的方法之外,還有更簡單的解決方案嗎?這些點是無向圖的邊,我需要遍歷它並說出它是否連接(我已經使用DFS,但是當N = 100萬時,它永遠不會結束!)。
歡迎任何僞代碼,意見或想法, 謝謝!
編輯:我發現這對塞奇威克書(我看代碼現在):
計劃3.18使用鏈表的二維數組通過改善計劃3.7的運行時間當N足夠大時約爲1/d2的因子。它將單位 平方分成一個相同大小的小方格。然後,對於每個正方形,它建立一個所有落入該正方形的點的鏈接列表。二維陣列提供了立即訪問接近給定點的一組點的能力;鏈接列表提供了靈活性來存儲它們可能掉落的點,而不必事先知道每個網格廣場有多少點。
嗯......它看起來正是我需要的東西。我如何選擇網格大小?謝謝! – Fernando 2013-04-05 14:50:57