【总结整理】J.U.C (一)

 

    java多线程体系主要以包 java.util.concurrent 构建。

    api主要囊括了 原子操作,锁,并发容器,线程池四大块的内容,有此构成了java的多线程体系


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些常用的图论算法的 Matlab 代码: 1. Dijkstra算法求最短路: ```matlab function [dist,prev]=dijkstra(G,source) n=length(G); dist=inf(1,n); dist(source)=0; S=1:n; prev=zeros(1,n); while not(isempty(S)) [~,u]=min(dist(S)); S(S==u)=[]; for v=S if G(u,v) alt=dist(u)+G(u,v); if alt<dist(v) dist(v)=alt; prev(v)=u; end end end end ``` 2. Bellman-Ford算法求最短路: ```matlab function [dist,prev]=bellman_ford(G,source) n=length(G); dist=inf(1,n); dist(source)=0; prev=zeros(1,n); for i=1:n-1 for u=1:n for v=1:n if G(u,v) alt=dist(u)+G(u,v); if alt<dist(v) dist(v)=alt; prev(v)=u; end end end end end for u=1:n for v=1:n if G(u,v) if dist(u)+G(u,v)<dist(v) error('Negative cycle detected'); end end end end ``` 3. Floyd算法求最短路: ```matlab function [D,next]=floyd(G) n=length(G); D=G; next=zeros(size(G)); for k=1:n for i=1:n for j=1:n if D(i,j)>D(i,k)+D(k,j) D(i,j)=D(i,k)+D(k,j); next(i,j)=k; end end end end ``` 4. Prim算法求最小生成树: ```matlab function [T,total_cost]=prim(G) n=length(G); total_cost=0; T=zeros(n); D=inf(1,n); visited=false(1,n); D(1)=0; for i=1:n-1 [~,u]=min(D); visited(u)=true; for v=1:n if G(u,v)~=0 && ~visited(v) && G(u,v)<D(v) D(v)=G(u,v); T(u,v)=G(u,v); T(v,u)=G(u,v); end end total_cost=total_cost+D(u); D(u)=inf; end ``` 5. Kruskal算法求最小生成树: ```matlab function [T,total_cost]=kruskal(G) n=length(G); [G_sorted,I]=sort(G(:)); T=zeros(n); total_cost=0; for k=1:length(G_sorted) [i,j]=ind2sub([n,n],I(k)); if G(i,j)~=0 && ~connected(T,i,j) T(i,j)=G(i,j); T(j,i)=G(i,j); total_cost=total_cost+G(i,j); end end end function c=connected(T,i,j) n=size(T,1); S=zeros(1,n); S(i)=1; while true old_S=S; S=max(S,T*S); if isequal(S,old_S) break end end c=S(j); end ``` 这些代码可以作为图论算法学习和实践的参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值