我有一个有向无环图,其中的节点是连接到其他节点中条目的条目列表。有点像这样:
entry ]
entry--| ] node 1
entry | ]
----- |
entry<-| ] node 2
entry | ]
----- |
entry | ] node 3
entry--| ]
节点内条目的顺序是固定的。这些条目存储在一个数组中,该数组具有它们链接到的条目的绝对索引。每个条目最多有 1 个链接,每个节点至少有 1 个链接。(换句话说,这是一个高度连通的图)。该图包含大约 100,000 个条目,分组在 40,000 个节点中。
我需要做的是通过重新排序节点来最小化条目之间的最大距离,以便我可以使用链接的相对索引并压缩底层数据结构。
因为压缩和性能是目标,所以添加外部数据(跳转表、列表中的特殊跳转元素)的解决方案是不可接受的。我真的需要一种算法来重新排序节点,以最小化条目之间的最大距离。有什么想法吗?