|
|
1
11
如果数组没有以任何方式进行排序,那么就不可能比O(n)更快,因为您必须检查每个点,以确保它不比您迄今为止找到的任何点更接近。
|
|
|
2
3
你可以使用 Bounding Volume Hierarchy . 但这并不能改善最坏情况下的复杂性,也不能直接得到精确的解决方案。 |
|
|
3
2
如果这些点是在x坐标上排序的,我得到了一个O(logN)的解。
考虑2D情况。 假设每个点用以下数据结构表示:
如果所有的点都在
算法
|
|
|
4
2
实际上,我们可以在x坐标中对点进行排序,然后从x差最接近目标的点开始,向左和向右扫描,一旦下一个点在该方向上的x差已经大于目前为止发现的最小距离,就停止向一个方向扫描。 分而治之仍然是线性的,如果你分成两半,但不放弃任何一半。 |
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 2 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 2 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 2 年前 |