algorithm - 在偏序集中查找大于给定的元素

标签 algorithm data-structures partial-ordering

我有一套 S T 类型的元素.有部分订单<=T 类型的元素上.众所周知,S 中的所有元素没有订购。 然后,我需要一种方法来执行以下查询:having element e类型 T , 找到 e'S这样 e <= e' .

是否有一种数据结构可以有效地执行此类查询(无需对 S 进行线性扫描)?

重要提示:T是完整的格子。

最佳答案

您可以预处理列表并找到没有任何其他元素大于这些数字的元素子集(假设您将所有数字表示为 dag,您应该找到没有父元素的所有元素)。一旦你有了那个子集,你需要做的就是对该子集进行线性扫描。我认为没有比这更好的了。

此外,您还可以根据子集中每个元素大于的元素数(按降序)对子集进行排序。并按顺序扫描元素。

关于algorithm - 在偏序集中查找大于给定的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46327636/

相关文章:

用于评估数学/算术表达式的 C++ 仿函数库

algorithm - 动态规划的递归求解

项目过期的 C# 集合

c - SCTP 有序消息传递

c++ - 用于表示偏序的 C/C++ 图形接口(interface)

java - 部分有序比较器到全序比较器

algorithm - 红黑树包含过多的黑色节点和过少的红色节点

c# - 从多个列表创建组合列表

java - 我需要实现一个数组哈希表,该表无需在开始时将数组初始化为 null 即可工作。任何线索如何做到这一点?

python - 如何安装 pythonds 模块?