为nlogn算法提供下限

时间:2011-10-05 02:27:59

标签: algorithm

这里讨论了原始问题:Algorithm to find special point k in O(n log n) time

简单地说,我们有一个算法可以找出平面中的一组点是否具有对称中心。

我想知道有没有办法证明这个算法的下界(nlogn)?我想我们需要使用这个算法来解决一个简单的问题,例如排序,元素唯一性或集唯一性,因此我们可以得出结论,如果我们可以解决例如使用此算法的元素唯一性,它至少可以是nlogn。

似乎解决方案与元素唯一性有关,但我无法找到将其操作为对称算法中心的方法。

2 个答案:

答案 0 :(得分:5)

检查this paper

我们的想法是,如果我们可以将问题A减少到问题B,那么B就不会比A更难。

也就是说,如果问题B具有下限Ω(nlogn),则问题A保证具有相同的下限。

在论文中,作者选择了以下相对平易近人的问题为B:给定两组n个实数,我们希望决定它们是否相同。

很明显,这个引入的问题具有下限Ω(nlogn)。以下是作者如何将我们的问题简化为引入的问题(A,B表示以下上下文中的两个实际集合):

enter image description here

答案 1 :(得分:0)

首先要注意你的魔法点k必须位于中心。

  • 构建由向量位置(O(nlog n))
  • 索引的查找数据结构
  • 计算点集的质心(O(n))
  • 对于每个点,计算其相反的向量位置并检查其在查找结构中的存在(O(log n)* n)

适当的查找数据结构基本上可以包含允许您通过内容高效查找内容的任何内容,包括平衡树,八叉树,哈希表等。