ky8023 发表于 2008-6-2 17:33

帮我分析一下就行

<p>以前上课做的一道题,现在需要这个程序,可是却忘了怎么写程序开头。</p><p>关于最短路径的问题。</p><p>function =Dijkstra(w,u0,ui);<br/>if nargin=0;<br/>    w=[];<br/>    u0=1;</p><p>上面的是我自己加上去的,可是不行,你们帮我改下,谢谢了。</p><p>后面的是:</p><p>w=<br/>  n=size(w,1);<br/>   w1=w(1,:);<br/>
                <br/>
                <br/>   %赋初值<br/>   for i=1:n<br/>      l(i)=w1(i);<br/>      z(i)=1;<br/>   end<br/>   s=[];<br/>   s(1)=1;<br/>   u=s(1);<br/>   k=1<br/>   l<br/>   z<br/>
        </p><p>while k&lt;n<br/>   % 更新 l(v) 和 z(v)<br/>   for i=1:n<br/>      for j=1:k<br/>      if i~=s(j) <br/>         if l(i)&gt;l(u)+w(u,i)<br/>            l(i)=l(u)+w(u,i);<br/>            z(i)=u;<br/>         end<br/>      end<br/>      end<br/>   end<br/>   l<br/>   z<br/>
                <br/>   %求v*<br/>   ll=l;<br/>   for i=1:n<br/>      for j=1:k<br/>         if i~=s(j)<br/>            ll(i)=ll(i);<br/>         else <br/>            ll(i)=inf;<br/>         end<br/>      end<br/>   end<br/>
                <br/>   lv=inf;<br/>   for i=1:n<br/>      if ll(i)&lt;lv<br/>         lv=ll(i);<br/>         v=i;<br/>      end<br/>   end     <br/>   lv<br/>   v<br/>
                <br/>  s(k+1)=v<br/>  k=k+1<br/>  u=s(k)<br/>
                <br/>end<br/>l<br/>z</p>

梦飞翔 发表于 2008-7-27 19:27

<p><font face="Verdana">w=<br/>&nbsp;&nbsp; n=size(w,1);<br/>&nbsp;&nbsp; w1=w(1,:);<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; %赋初值<br/>&nbsp;&nbsp; for i=1:n<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l(i)=w1(i);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z(i)=1;<br/>&nbsp;&nbsp; end<br/>&nbsp;&nbsp; s=[];<br/>&nbsp;&nbsp; s(1)=1;<br/>&nbsp;&nbsp; u=s(1);<br/>&nbsp;&nbsp; k=1<br/>&nbsp;&nbsp; l<br/>&nbsp;&nbsp; z<br/>&nbsp;&nbsp; </font></p>
<p><font face="Verdana">while k&lt;n<br/>&nbsp;&nbsp; % 更新 l(v) 和 z(v)<br/>&nbsp;&nbsp; for i=1:n<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for j=1:k<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if i~=s(j) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if l(i)&gt;l(u)+w(u,i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l(i)=l(u)+w(u,i);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z(i)=u;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br/>&nbsp;&nbsp; end<br/>&nbsp;&nbsp; l<br/>&nbsp;&nbsp; z<br/>&nbsp;&nbsp; </font></p>

梦飞翔 发表于 2008-7-27 19:28

<p>试下这个程序....</p>
页: [1]
查看完整版本: 帮我分析一下就行