當前位置:編程學習大全網 - 編程軟體 - 求鄰接矩陣任意兩點間的最短距離。matlab。程序在下面有沒有哪位大神能給解釋壹下後邊的是什麽意思

求鄰接矩陣任意兩點間的最短距離。matlab。程序在下面有沒有哪位大神能給解釋壹下後邊的是什麽意思

根據lz要求,最合適的是floyd算法

下面就是根據這個算法寫的代碼,lz可以自己改成函數

D=[0 1 0 1 0 0

1 0 1 0 0 0

0 1 0 1 1 1

1 0 1 0 1 0

0 0 1 1 0 1

0 0 1 0 1 0];

n=length(D);

for k=1:n

for i=1:n

for j=1:n

if 0<D(i,k) & 0<D(k,j)

if D(i,j)==0 & i~=j

D(i,j)=D(i,k)+D(k,j);

else

D(i,j)=min(D(i,j),D(i,k)+D(k,j));

end

end

end

end

end

答案就儲存在D矩陣當中,這裏

D =

0 1 2 1 2 3

1 0 1 2 2 2

2 1 0 1 1 1

1 2 1 0 1 2

2 2 1 1 0 1

3 2 1 2 1 0

算法為O(n3)的,256^3=2^24 大概等於1600萬

效率上完全能夠忍受。

  • 上一篇:請教壹道編程題
  • 下一篇:武大計算機博士畢業要發a嗎
  • copyright 2024編程學習大全網