he_floyd.m

来自「打开后有详细说明」· M 代码 · 共 39 行

M
39
字号
function D=he_Floyd(D)
n=size(D,1);
for i=1:n %初始R
    for j=1:n
        R(i,j)=j;
    end
end
for k=1:n
    for i=1:n
        for j=1:n
            [miner(i,j),I]=min([D(i,j),D(i,k)+D(k,j)]);             
            if I==2
                R(i,j)=k;
            end
%*****************************HEHE ALGORITHM*******************************
            if k==1|(I==2&is_bit(index(i,j))<3)     %初始index    
                if I==1 
                   index(i,j)=j+i*10;
                else 
                   index(i,j)=j+k*10+i*10^2; 
                end 
            else
                if I==2    %判断并二次更新
                   index(i,j)=index(i,k)*10^(is_bit(index(k,j)))+index(k,j);
                end
            end 
%**************************************************************************
        end
    end
    D=miner;
    fprintf('______________第次%2d 迭代______________\n',k);
    fprintf('D(%d)=\n',k);
    disp(D);
    disp('路径:');
    disp(index);
    disp('追溯(R):');
    disp(R); 
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?