假設我們在平面中有一組點,每個點都由一對整數座標描述。有沒有辦法在這個點上找到具有頂點的三角形,並且最大可能區域比O(n^3)算法更快?查找三角形最大可能區域的最快方法
4
A
回答
1
- 找到凸包。
- 對於位於凸包上的點(A,B)的每個對,找到第三點C,給出三角形ABC的最大面積。這可以使用O(log n)中的二進制搜索完成。
要進行二分搜索,請按照某種順序(例如逆時針)排列凸包上的點。 A和B之間有兩個點序列,一個從A到B,另一個從B到A.分別考慮每個點。
二分查找步驟如下。在點間隔的中間連續三點C,C',C「。計算CAB,C'AB,C''AB三個區域。如果C'是三者中最大的,那麼它是全球最大值,搜索結束。如果C最大,則最大值在間隔的左半部分。如果C'最大,則最大值在右半部分。 (編輯:注意,新的時間間隔應該在其中一端包含C')。
那裏,一個算法在O(n^2 log n)中工作。
編輯2:this question的答案顯示瞭如何更快地做到這一點。你可以將兩種方法結合起來做更好的事情(在O(log n))中,在構造凸包之後,儘管它的構造仍然是O(n log n))。
+0
哇!尼斯想到了在加入對點的線段最大距離處進行二分法搜索。這應該在這對點的兩側完成。 –
相關問題
- 1. 查找最大可能區域
- 2. 查找三角形的區域
- 3. 找到最大值總和三角形
- 4. 用3D計算點到三角形距離的最快方法?
- 5. 查找給定區域的直角三角形的邊界
- 6. 查找具有不同三角形的最大路線
- 7. 查找字典中最大的區域
- 8. 給定一組三角形的長度,找到最大面積三角形
- 9. 用C++存儲三角形和線條的最佳(最快)方法?
- 10. 從區域計算矩形邊的最快方法?
- 11. 正方形內的兩個三角形可點擊區域
- 12. 三角形內的最大麴面
- 13. RenderScript中的最大三角形數
- 14. OpenGL:繪製三角形和四邊形混合的最快方法?
- 15. 帕斯卡三角形最大路徑
- 16. 在直方圖中查找最大矩形區域中的酒吧索引
- 17. 查找破損DIV的最快方法
- 18. Python3:檢查三邊是否能夠使用三角形不等式形成非零區域的三角形
- 19. 使用掃描儀查找圓形,三角形和矩形的區域
- 20. 查找所有可能的子串以最快的方式
- 21. 在PHP中找到最大頻率元素的最快方法
- 22. 查找最大功能的
- 23. 使用R查找大量值的最快方法是什麼?
- 24. 在大列表中查找重複號碼的最快方法
- 25. 查找heroku數據庫大小的最快方法
- 26. L形區域的三角剖分
- 27. 虛構的三角形區域
- 28. 尋找最大素因子(最快程序可能)
- 29. 查找最大可能的多邊形組點
- 30. 尋找最小允許的三角形的第三面
http://math.stackexchange.com/是問這個問題的好地方。 –
你也可以嘗試:http://cs.stackexchange.com/ – jfs
@OllieJones我懷疑它 - 這是一個算法(即編程)的問題。 – Dukeling