prim算法代码详解(prim算法代码详解matlab)

prim算法代码详解(prim算法代码详解matlab)prime 算法构造最小生成树 如何寻找数组的的值 clear M 50000 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 4 7 42 a 5 6 70 a a zeros 2

大家好,我是讯享网,很高兴认识大家。



%prime算法构造最小生成树 %如何寻找数组的的值 clear M=50000; 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(4,7)=42;a(5,6)=70; a=[a;zeros(2,7)]; a=a+a; a(find(a==0))=M;%整个构造矩阵的过程也值得理解一下 result=[];%置空 p=1;%用来放置最小生成树的顶点 tb=2:length(a); while length(result)~=length(a)-1
讯享网
讯享网temp</span>=a(p,tb);%<span style="color: rgba(0, 0, 0, 1)">这个地方可能难以理解,p和tb都是个数组(一个值也是组,在循环中会变的),那代表着a(p,tb)实际上是根据p,tb数组的值组成的交叉区域组成的 temp</span>=temp(:);%<span style="color: rgba(0, 0, 0, 1)">将temp的每一列合并成一个长的列向量 d</span>=min(temp);%<span style="color: rgba(0, 0, 0, 1)">获得其中的最小值 [jb,kb]</span>=find(a(p,tb)==d);%<span style="color: rgba(0, 0, 0, 1)">使用数组来作为标记寻找对应的值,返回的jb和kb分别对应这 j</span>=p(jb(<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">)); k</span>=tb(kb(<span style="color: rgba(128, 0, 128, 1)">1</span>));%<span style="color: rgba(0, 0, 0, 1)">返回可能是多个值选择第一个 result</span>=[result,[j;k;d]];%<span style="color: rgba(0, 0, 0, 1)">将对应的起点j,终点K和连线权值赋值给result p</span>=[p,k];%<span style="color: rgba(0, 0, 0, 1)">将K点加入,来作为判断依据 tb(find(tb</span>==k))=[];%<span style="color: rgba(0, 0, 0, 1)">置空,值得一学,因为你需要消除一个行或列向量的值时是个不错的选择,但检验之后不能消除矩阵中的单一值 </span>%吐槽一下find(tb==<span style="color: rgba(0, 0, 0, 1)">k)的思路 </span>% tb==k tb=(<span style="color: rgba(128, 0, 128, 1)">2</span>:<span style="color: rgba(128, 0, 128, 1)">7</span>),k=<span style="color: rgba(128, 0, 128, 1)">2</span> % <span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0</span> %<span style="color: rgba(0, 0, 0, 1)"> 竟然用find来查找非零值 </span>%<span style="color: rgba(0, 0, 0, 1)"> 最后再消 </span>%<span style="color: rgba(0, 0, 0, 1)"> 你***是怎么想出来的 
end result;
</span></pre> 

讯享网
小讯
上一篇 2025-04-26 16:22
下一篇 2025-06-16 13:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/146263.html