解决依赖关系构建的算法是什么?

时间:2015-11-22 16:54:02

标签: c# algorithm sorting

我正在构建一个类似于项目构建的系统。一个项目有一组输入和输出。项目可能依赖于其他项目。我可以使用拓扑排序并找到我必须评估项目的顺序。但是,我如何并行构建。 Toposort不会为可以并行构建的项目提供相同的排名。另外,我如何进行增量构建。

1 个答案:

答案 0 :(得分:1)

您可以并行构建所有没有依赖项的项目。构建之后从图中删除构建的项目,并再次构建没有依赖项的项目。重复,直到图表为空。

在伪代码中

  1. 构建项目图
  2. 验证图表(例如循环依赖关系)
  3. 查找所有没有依赖项的项目,而不是构建
  4. 开始构建3中的所有内容并在构建
  5. 下标记它们
  6. 等待一个build end和romove builded project from graph
  7. 如果图表不为空,请转到3
  8. 等待休息生成