任何优雅的二叉搜索树算法来解决这个问题?

时间:2012-04-11 02:54:14

标签: binary-search-tree

我遇到了这个问题,并希望有一个快速的算法来解决它。

给定2D平面中的n个点(它们都没有x值或y值等于另一个),找出形成具有正斜率的线的所有点对的数量。(比如(0,0)和(1,1),正斜率为45度)

由于n很大(比如60000),所以我需要一个优雅的算法来保持它在1秒内。 我知道使用O(n ^ 2)很容易做到,但它只是减速,大约需要30秒。是否有可能使用二元搜索树来实现nlogn复杂性?

我感谢任何想要启发我的人。

1 个答案:

答案 0 :(得分:0)

看起来你应该能够以数学的方式做到这一点。

每组2分(我认为使用permations)将是正面或负面的,如果它们是随机点,这意味着平均50%为正,50%为负..所以它将是对数/ 2。