- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华科算法实验报告
课 程 实 验 报 告
课程名称: 算法设计与分析5-11-29
计算机科学与技术学院
目录
一.实验一 3
1.实验题目 3
2.设计思路 3
3.程序源代码 4
4.运行演示 7
二.实验二 8
1.实验题目 8
2.设计思路 8
3.程序源代码 9
4.运行演示 12
一.实验一
1.实验题目
单源最短路径问题:
已知一个n结点有向图G=(V,E)和边的权函数c(e),求由G中某指定结点v0到其它各结点的最短路径。假定边的权值为正。
2.设计思路
贪心算法流程图如图1:
图1 生成最短路径算法流程
设计总方法:
使用贪心算法求解。
贪心方法:
1) 度量标准
生成的所有路径长度之和作为标准。为这一量度达到最小,其单独的每一条路径都具有最小长度。
按照路径长度的非降次序生成这些路径。,生成一条到最近结点的短路径然后,生成一条到第二近结点的最短路径,等等。i,j)是(i,j)的权,则在边(i,j)不在成本邻接矩阵时,就被置某个大数,这里用N表示,当i=j时,COST(i,j)被置以0。
3.程序源代码
#include stdio.h
#include stdlib.h
#define N 1000
void shortestPaths(int v,int *COST,int *DIST,int n);//最短路径生成函数
void output2(int *arr,int row,int col);//输出成本的邻接矩阵
void outArray1(int *arr,int n);//输出更新后其它结点到起始结点的路径长度
int main()
{
int COST[7][7]={
{0,20,50,30, N, N, N},
{N, 0,25, N, N,70, N},
{N, N, 0,40,25,50, N},
{N, N, N, 0,55, N, N},
{N, N, N, N, 0,10,70},
{N, N, N, N, N, 0,50},
{N, N, N, N, N, N, 0}
};
int DIST[7];
int v=0;
/* printf(成本邻接矩阵:\n);
output2(COST[0][0],7,7);
*/
//生成0号结点到1至6号结点的最短路径
shortestPaths(v,COST[0][0],DIST,7);
return 0;
}
void shortestPaths(int v,int *COST,int *DIST,int n)
{//G是一个n结点有向图,它由其成本邻接矩阵COST[n][n]表示,DIST[j]被置以结点v到
//结点j的最短路径长度,这里1=j=n;DIST[v]被置成0
int S[n];
int pre[n];//p[w]记录起始结点到结点w的最短路径中的w前一结点
int u,num,i,w;
int tv,td=0;
//初始化:结点v以外的结点未被选中,并更新路径长度为v到其它结点的初始成本
for(i=0;in;i++)
{
S[i]=0;
*(DIST+i)=*(COST+v*n+i);
pre[i]=0;
}
S[v]=1;
DIST[v]=0;
//更新路径长度
for(num=1;numn;num++)
{
//选择距离结点 v 最近的结点 w
for(w=1;wn;w++)
{
if(S[w]==0)
{
td=DIST[w];
tv=w;
break;
}
}
for(w++;wn;w++)
{
if(S[w]==0tdDIST[w])
{
td=DIST[w];
tv=w;
}
}
u=tv;
S[u]=1;
DIST[u]=td;
//更新路径
您可能关注的文档
最近下载
- 机械测量培训课程.pptx
- 医疗器械安全有效基本要求清单填写参考模板2024年.docx
- 人教版(2024)数学一年级下册四 100以内的口算加、减法 练习.pptx
- 电气装置安装工程质量检验及评定规程DLT5161 2018.doc
- 做好客舱清洁前准备课件讲解.pptx
- 铁道信号论文-信号机维护与故障处理.doc
- ISO13485质量手册+全套程序文件.docx VIP
- 汽车机械维修工(高级技师)职业鉴定考试题库资料(高频300题).pdf
- 多维视角下梧州市普通高中体育生学训现状剖析与发展路径探索.docx
- 江南事业编招聘考试题历年公共基础知识真题汇总-综合应用能力(2010-2021.pdf VIP
文档评论(0)