回答
如何:
1确定点集的凸包。
2找到船体上各点之间的最长距离。
这应该允许您在检查距离时忽略所有不在船体上的点。
这是一个很好的解决方案,但我认为太难实施了。而二次复杂性并不差。 –
@McOmghall太难实施了?做更多的算法,人...和更多的编程...等等。 – quasiverse
我认为这个解决方案作为基本解决方案也有一个n平方的复杂度(即找到每两个点之间的距离) – suat
为了详细说明rossom的回答是:
- 查找其可以在O发现(N log n)的点时间,像格雷厄姆的扫描或O的一种算法的凸包(N日志1H)时间我假设的其他算法很难实现
- 从一个点开始,比如说A,并且循环通过其他点找到距离它最远的那个点,如B所示。
- 将A推进到下一个点并将B推进到它离A再远一点。如果这个距离大于第二部分的距离,则将其存储为最大。重复,直到你已经循环遍历集合中的所有点A
第2和第3部分采用分摊的O(n)时间,因此整个算法的时间取决于O(n log n)或O(n log h)多少时间你可以花费在实现凸包上。 O(n^2)应该可以正常工作(除非你多次执行)。这很好,但是如果你只有几千分(如你所说),O(n^2)应该可以正常工作。
不应该第3部分采取O(N^2)? – Sahil
- 1. 查找二维空间中的两个最远点(曼哈顿距离)
- 2. 检测两个iphone/ipod/ipad之间距离的最佳方法是什么?
- 3. 计算二维空间中两点之间的距离?
- 4. 最快的方法来计算两个CGPoints之间的距离?
- 5. 计算二维空间中的欧几里得距离的最快方法
- 6. GeoDjango任意两点之间的最远距离
- 7. C++发现二维数组中两点之间的距离
- 8. 两点之间的测地距离
- 9. 两点之间的最短距离。蛮力算法
- 10. Java二叉树:找到达到两个节点的距离最短的节点
- 11. 最小化Python中两组点之间的总距离
- 12. 两个地理点之间的距离?
- 13. 蟒:在两个阵列的两个点之间发现最小距离
- 14. Matlab中两点之间的距离
- 15. 获得两点之间的最短距离
- 16. 如何找到两个分离最广的节点之间的距离
- 17. 找到距离地点最小总距离的点的算法
- 18. 什么是比较两个表的最快方法?
- 19. 沿着距离两个给定点的距离找到一条中间点
- 20. 用3D计算点到三角形距离的最快方法?
- 21. 发现在二维数组两点之间的最短路径
- 22. 检查两个Tbitmap是否相同的最快方法是什么?
- 23. 检查两个给定数字是否互反的最快方法是什么?
- 24. 两点之间的Cloudmade距离
- 25. Hive:两点之间的距离
- 26. 曼哈顿距离的两个最近点
- 27. 什么是矩阵中2个节点之间的最短距离?
- 28. 用于查找空闲树中两个节点之间最长距离的线性时间算法?
- 29. 在PostGIS中哪一个是计算两点之间距离最准确的方法?
- 30. 多点之间的最短距离
只是要知道,你认为O(n^2)是一种指数复杂性吗? – suat
有多少点? – TheHorse
约1k点。固定指数=>二次方。 – kravemir