资源描述:
《单源最短路径贪心算法报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划单源最短路径贪心算法报告 算法分析与设计实验报告 第5次实验 附录:完整代码 #include #include #include #definemaxint1000 intc[200][200]={0}; voidDijkstra(intn,intv,intdist[],intprev[]){bools[maxint]; for(inti=1;i50)c[i][j]=1000;
2、 } } } printf("请输入源点:"); scanf("%d",&v); intdist[n+1],prev[n+1]; printf("路径:");目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 for(inti=1;i;从Vs出发到Vj的这条最短路径所经过的所有中间顶点必定在S中。即只有这
3、条最短路径的最后一条弧才是从S内某个顶点连接到S外的顶点Vj。 若定义一个数组dist[n],其每个dist[i]分量保存从Vs出发中间只经过集合S中的顶点而到达Vi的所有路径中长度最小的路径长度值,则下一条最短路径的终点Vj必定是不在S中且值最小的顶点, 即:dist[i]=Min{dist[k]
4、Vk∈V-S} 利用公式就可以依次找出下一条最短路径。 在程序中c[][]表示带权邻接矩阵,dist[]表示顶点到源点的最短路径,p[]记录顶点到源点最短路径的前驱节点,u源点,函数Way是递归的构造出最短
5、路径的次序。 五、实验结果 程序执行的结果: 六、源代码 #include #include usingnamespacestd; #defineMAX999 voidgetdata(int**c,intn) { inti,j; intbegin,end,w目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计
6、划eight; for(i=1;i>begin; if(begin==-1)break; cin>>end>>weight; c[begin][end]=weight; }while(begin!=-1); } voidDijkstra(intn,intv,int*dist,int*prev,int**c) { bools[MAX]; inti,j; for(i=1;i1;i--) { path[i]=prev[path[i+1]];//构造路径m--; } for(i=m;i";
7、//输出路径} cout>n; int*dist=newint[n+1]; int*prev=newint[n+1]; int**c; c=newint*[n+1]; for(i=0;i>begin>>end;目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 v=begin; Dijkstra(n,v,dis
8、t,prev,c);//计算路径 PrintPath(prev,n,begin,end);//输出路径system("pause"); } 本科学生综合性实验报告 项目组长杨滨学号__成员杨滨专业_软件工程班级12软件2班实验项目名称求单源最短路径—Dijkstra算法指导教师及职称_赵晓平讲师___开课学期13至_14学年_一_学期上课时间XX年9月1日 学生实验报告三 一、实验综述 1、实验目的及要求 了解求最优化问题的贪心算法,了解贪心法的基本要素,学会如何使用贪心策略设计算法; 了解单
9、源最短路径问题,掌握Dijkstra算法的思想;编写程序,利用Dijkstra算法实现,求任意两点间的单源最短路径。 实验题: 给出如右有向图的边权图,求任意两点间的单源最短路径。 实验要求:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,