开发者社区> 问答> 正文

给出的图是否是二部图?

我被要求设计一个“递减征服”算法来检查给定的图是否是二部图, 我发现了一个算法,但我不知道它是否被认为是一个递减征服。 如果是什么是运行时间复杂度,我如何分析下面代码的最坏情况的时间复杂度。

def isBipartite(G , V):
    color = [-1]*V
    return colorgraph(G,color,0,1,V)

def colorgraph(G,color,pos,c,V):
    if color[pos] != -1 and color[pos] != c:
        return False 
    color[pos] = c
    res = True 
    for i in range (0,V):
        if G[pos][i]:
            if color[i] == -1:
                res &= colorgraph(G,color,i,1-c,V)
            if color[i] != -1 and color[i] != 1-c:
                return False
        if not res :
            return False
    return True 

驱动代码

graph = [[0,1,1,1],
         [1,0,1,0],
         [0,1,0,1],
         [1,0,1,0]]
V = len(graph)
if isBipartite(graph,V):
    print("yes , the graph is Bipartite !!!")
else:
    print("no  , the graph is not Bipartite !!!")

有人知道吗? 问题来源StackOverflow 地址:/questions/59382189/is-the-given-graph-bipartite-or-not

展开
收起
kun坤 2019-12-27 17:16:42 456 0
1 条回答
写回答
取消 提交回答
  • ……

    2019-12-27 17:18:01
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
图计算及其应用 立即下载
图计算优化技术探索 立即下载
图计算及在阿里应用 立即下载