最近老板让计算最短路径及路径个数,找遍了所有工具箱,都没现成的。急死了,什么Dijkstra和Floyd都搞不定。最后,想了想,算了吧,自己编吧,反正自己用,又没有算法复杂度要求。于是自己就写了个小程序(本程序仅限无权无向连通图),算法复杂度不晓得()。
本人不是计算机出身,就不写算法步骤了,直接上图解。
我们首先计算的是节点1到所有节点的最短路径,及个数。s存放节点1到所有节点的最短路径,p_num存放路径的个数。
初始化:s=[0,0,0,0,0,0,0] p_num=[1,0,0,0,0,0,0]
第一轮迭代:找节点1的所有邻居节点2,3,4。则:s([2,3,4])=1
在看节点2的邻居1和5.则: p_num(2)= p_num(1)+ p_num(5)=1+