最小化数组中相关项之间的距离

时间:2016-04-25 18:59:42

标签: algorithm sorting distance

我有一系列相关项目,{A,B,C,D}。

C依赖于A. D取决于B和C.

所以,我计算这个排列中项目之间的总距离作为以下距离之和:  C和A(2),  D和B(2),  D和C(1)。 所以,我们在这个排列中总共有5个。

然而,最佳解决方案是{A,C,D,B},其总距离为3.

我有一个(更复杂的)大约200个项目的列表,我想尽可能地优化它,而且我不知道任何排序算法以这种方式排序 - 任何人都可以指出我现有算法的方向?

来自评论: 数据图如下所示 - (格式化的道歉!)

#Dependencies #Items
            0      9
            1     27
            2     57
            3     55
            4     11
            5      3
            6      1

1 个答案:

答案 0 :(得分:0)

我相信您正在寻找的是拓扑排序。

此算法用于有向图。这里,字母表形成图的节点,依赖关系形成单向边。 该算法是深度优先搜索的应用,用于订购作业。

This是一个非常巧妙的解释。