i具有T
类型元素的集合S
。T
类型的元素上有部分订单<=
。众所周知,S
中的所有元素均未订购。然后,我需要一种执行以下查询的方法:具有T
类型的元素e
,在S
中查找e'
,以便e <= e'
。
是否有数据架构可以有效地执行此类查询(没有S
的线性扫描)?
重要说明:T
是完整的晶格。
您可以预处理列表并找到没有其他元素以外的元素的子集(假设您将所有数字表示为DAG,您应该找到所有元素没有父母)。一旦拥有该子集,您需要做的就是在此子集上进行线性扫描。我认为你不能做得更好。
此外,您还可以按子集中每个元素中的每个元素的元素数量对该子集进行排序。并按顺序扫描元素。