确实只需要一些指导: 通过圆弧定义的拓扑排序(从我的问题) - 是对方向图中的所有圆弧进行排序的一种方式,因此插入到顶点的所有圆弧必须先于从这个顶点出来。通过圆弧进行拓扑排序
1
A
回答
3
无需在拓扑排序中改变任何东西,你可以使用它和后期处理。
高电平伪代码:
- 运行拓扑排序,让所得到的数组是
arr
- 创建空边缘列表中,让它成为
l
在
- 为每个顶点
v
:
3.1。对于每个(v,u)
inE
:
3.1.1。追加(v,u) to l
- 回报
l
arr
[有序迭代]
这种方法的好处是,你可以使用拓扑排序为黑盒,而无需修改它,只是后期处理,以获得所需的结果。
正确性 [证明的草图]:
由于每个边缘(v,u)
- u
显示在拓扑排序v
后,在打印它,它是通过v
完成,并且因此(v,u)
打印任何顶点之前被印刷附于u
。
复杂: O(|V|+|E|)
拓扑排序,O(|V|+|E|)
用于后处理[迭代的所有顶点和所有边缘。
0
相关问题
- 1. 拓扑排序
- 2. 拓扑排序Neo4j
- 3. 拓扑排序和循环
- 4. 拓扑使用排序DFS
- 5. 是拓扑排序尝试对顶点或边进行排序吗?
- 6. 使用合金4.2的拓扑排序
- 7. 拓扑排序(卡恩算法)麻烦
- 8. 图表:拓扑排序,需要说明
- 9. 排序(拓扑)maven依赖关系
- 10. 通过REST API部署Storm拓扑
- 11. 排序和拓扑排序有什么区别?
- 12. PHP排序依赖项数组列表 - 拓扑排序
- 13. 与拓扑
- 14. 机架拓扑
- 15. 拓扑,缩放
- 16. 快速拓扑排序,当节点顺序显着时?
- 17. Cassandra拓扑问题
- 18. CSS3通过弧线进行翻译
- 19. 如何通过3点绘制圆弧
- 20. 如何查找拓扑排序的所有结果
- 21. 确定有向图是否具有唯一的拓扑排序?
- 22. 2可满足性强连接组件拓扑排序
- 23. 为什么拓扑排序找到最短路径O(V + E)
- 24. 使用拓扑排序的打印(未检测)循环
- 25. Chicken计划中的拓扑排序错误?
- 26. 关于发生矩阵的拓扑排序
- 27. 在算法中正确使用拓扑排序
- 28. 拓扑排序的有向图顶点的子集
- 29. 为什么C++在拓扑排序上比Java慢?
- 30. 试图在c中做一个图的拓扑排序?
是的,大O是一样的,但你必须做两倍的工作量... – tchap 2012-03-25 22:38:17
@OndrejKupka:的确,常数会高于修改拓扑排序[虽然不是双倍,我相信由于缓存性能],但为了**封装**拓扑排序的好处。 [这是非常重要的方面!]。在实际应用中,*如果您发现这部分是热点*,您可能会想要重写它,并表示同意。 – amit 2012-03-25 22:49:05
是的,把这么多的代码拷贝一空并不实际。 – tchap 2012-03-25 22:57:19