進口?時間
從哪裏?收藏?進口?默認字典
從哪裏?接線員?進口?itemgetter
#?數據?在?BC.txt:
#?腹肌
#?啊
#?公元前
#?
#?妳好
#?汞
#?鍍鋅鐵
#?重力
#?隨軍牧師
#?鑄鐵
#?激光唱片
#?df
#?(加在動詞之前)表示“否定”,“相反”;(加在名詞之前構成動詞)表示“除去”,“除掉”
#?(英國)繼續教育
班級?圖表:
def?__init__(self):
自我。圖表?=?默認字典(集合)
自我。NodesNum?=?0
def?MakeLink(自身、文件名、分隔符):
用什麽?打開(文件名,' r ')?作為?圖表文件:
為了什麽?線?在?圖表文件:
nodeA,nodeB?=?line.strip()。拆分(分隔符)
自我。圖形[nodeA]。添加(節點b)
自我。圖形[nodeB]。添加(節點a)
自我。NodesNum?=?len(自我。圖表)
def?中間性中心性(自我):
介於之間?=?dict.fromkeys(self。圖表,0.0)
為了什麽?s?在?自我。圖表:
#?1.?計算?那個?長度?然後呢。號碼?的?最短?路徑?從哪裏?節點?s
s?=?[]
p?=?{}
為了什麽?v?在?自我。圖表:
P[v]=[]
適馬?=?dict.fromkeys(self。圖表,0.0)
適馬[s]?=?1.0
d?=?{}
D[s]?=?0
q?=?[s]
#?使用?BFS?去哪?發現?單身?來源?最短?小路
什麽時候?問:
v?=?Q.pop(0)
追加(v)
Dv?=?D[v]
為了什麽?w?在?自我。圖表[v]:
#?w?找到了?為了什麽?那個?首先?時間?
如果?w?不是嗎?在?d:
q .追加(w)
D[w]?=?D[v]?+?1
#?最短?路徑?去哪?w?via?v
如果?D[w]?==?D[v]?+?1:
適馬?+=?適馬
P[w]。追加(v)
#?2.?sum?全部?配對依賴?的?節點?s
德爾塔?=?dict.fromkeys(self。圖表,0.0)
#?s?退貨?頂點?在?訂單?的?非增?距離?從哪裏?s
什麽時候?學生:
w?=?流行歌曲()
coeff?=?(1.0+delta[w])/適馬[w]
為了什麽?v?在?P[w]:
delta[v]?+=?適馬[v]*柯夫
如果?w?!=?學生:
中間[w]?+=?三角洲[w]
尺度?=?1.0/((自我。NodesNum-1)*(self。NodesNum-2))
為了什麽?v?在?介於:
介於之間?*=?規模
介於之間?=?[(node,bc)?為了什麽?節點,bc?在?betweenness.iteritems()]
介於之間?=?排序(betweenness,key=itemgetter(1),reverse=True)
回歸?中間狀態
如果?__name__=='__main__ ':
分離器?=?\t '
文件?=?' c:\ \用戶\ \管理員\ \桌面\\BC.txt '
開始?=?time.time()
我的圖表?=?圖表()
我的圖表。MakeLink(文件,分隔符)
打印?我的圖表。BetweennessCentrality()
打印?時間:',time.time()-begin,'?“秒”