lecture7_P4_greedy.py 883 Bytes
inf=1000 #infinite
w=[[0,7,4,6,1],[inf,0,inf,inf,inf], [inf,2,0,5,inf], [inf,3,inf,0,inf], [inf,inf,inf,1,0]]
n=5
f=set()
touch=n*[0] #처음에는 도착전 마지막 노드가 없으므로 0번 자체
length=n*[0]

for i in range(1,n) :
    length[i] = w[0][i]; #처음은 0번 노드가 도착 전 마지막 노드이므로 0번 노드에서 i까지 가는 거리 설정.
    
for k in range(1,n) :
    minVal = 1000 #min 큰수로 지정함.
    for i in range(1,n) :
        if(0<=length[i] and length[i]<min) :
            
            #처음 : 무조건 min이 교체될 것이고
            #그 이후 : min보다 더 작으면 교체
            min = length[i]
            vnear = i #vnear는 미포함 지역에 있는 node이다.
            
        f.add((touch[vnear],vnear)) #vnear에 연결되는 마지막 연결점과 vnear를 잇는 아크를 f에 추가.