kruskal算法可运行MATLAB
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
clc;clear;
M=1000;
%a(1,2)=50;a(1,3)=60;
%a(2,4)=65;a(2,5)=40;
%a(3,4)=52;a(3,7)=45;
%a(4,5)=50;a(4,6)=30;
%a(5,6)=70;
a(1,2)=1;a(1,3)=4;
a(2,3)=2;a(2,4)=3;a(2,5)=5;
a(3,4)=1;a(3,5)=3;
a(4,5)=2;
[i,j]=find((a~=0)&(a~=M));
b=a(find((a~=0)&(a~=M)));
data=[i';j';b'];index=data(1:2,:); loop=max(size(a))-1;
result=[];
while length(result) temp=min(data(3,:)); flag=find(data(3,:)==temp); flag=flag(1); v1=data(1,flag);v2=data(2,flag); if index(1,flag)~=index(2,flag) result=[result,data(:,flag)]; end if v1>v2 index(find(index==v1))=v2; else index(find(index==v2))=v1; end data(:,flag)=[]; index(:,flag)=[]; end result