python编写Floyd算法

来源:互联网 发布:淘宝违规产品被删除了 编辑:程序博客网 时间:2024/05/31 18:58

需要安装numpy

'''Floyd算法'''import numpy as npMax     = 100v_len   = 4edge    = np.mat([[0,1,Max,4],[Max,0,9,2],[3,5,0,8],[Max,Max,6,0]])A       = edge[:]path    = np.zeros((v_len,v_len))def Folyd():    for i in range(v_len):        for j in range(v_len):            if(edge[i,j] != Max and edge[i,j] != 0):                path[i][j] = i    print 'init:'    print A,'\n',path    for a in range(v_len):        for b in range(v_len):            for c in range(v_len):                if(A[b,a]+A[a,c]<A[b,c]):                    A[b,c] = A[b,a]+A[a,c]                    path[b][c] = path[a][c]    print 'result:'                print A,'\n',path                if __name__ == "__main__":    Folyd()


0 0
原创粉丝点击