我有一种算法可以在无向图中找到一组边不相交的路径。
从图中所有边的列表开始
当列表中仍有可用边时,执行深度/广度优先搜索以找到路径。如果找到路径,保存它,从列表和图形中删除边并增加路径计数器
从列表中删除第一个可用边并将其指定为当前路径
尝试将当前路径与已保存边缘列表匹配
如果没有可用的边缘匹配,则路径完成
如果可用边可以扩展当前路径,则将其添加到当前路径并从边列表中删除,然后继续尝试扩展当前路径。
我相信 2 和 3 在 O(E(V+E) + E) 时间内执行,因为
- 广度/深度优先搜索在 O(V+E) 时间内执行
- 搜索在列表中的 E 条边上执行
- 从列表和图形中删除 E 边
由于迭代边缘列表需要两个循环,算法的后半部分在 O(E^2) 时间内执行。
因此,我有一个最后的最坏情况 O(E(V+E)+ E^2+E)=O(EV+2E^2+E)
我对吗?