《算法设计与分析》实验.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法设计与分析》实验

《算法设计与分析》实验报告 学号: 姓名: 实验一 分治法求解**问题 一、实验目的 1.掌握分治法的设计思想并能熟练应用; 2.理解分治与递归的关系。 二、实验题目 在有序序列中中,存在序号(≤)=。请设计一个分治算法找到这个元素,要求算法在最坏情况下的时间性能为. 三、实验程序 //以(0,2,3,3,5,7,8,10,12,13)为例 #includeiostream using namespace std; void PrintData(int data[],int length) { cout有序序列是:; for (int i=0;ilength;i++) { coutdata[i] ; } coutendl; } int Bisearch(int data[],int begin ,int last) { int mid=(begin + last) /2; if (mid+1 == data[mid]) { return mid; } if ( mid data[mid] ) { Bisearch(data,begin ,mid-1); } else { Bisearch(data,mid+1 ,last); } return 0; } void main() { int x; int data[10]={0,2,3,3,5,7,8,10,12,13}; PrintData(data,10); x=Bisearch(data,0,9); cout要查找的值data[x]endl; } 四、程序运行结果 实验二 动态规划法求解单源最短路径问题 一、实验目的 1.深刻掌握动态规划法的设计思想; 2.熟练应用以上算法思想求解相关问题。 二、实验题目 设有一个带权有向连通图,可以把顶点集划分成多个互不相交的子集,使得任一条边的两个顶点分属不同子集,称该图为多段图。采用动态规划法求解多段图从源点到终点的最小代价路径。 三、实验程序 #includeiostream using namespace std; #define INFINITY 100 #define MAX 20 typedef struct { int vextex,edge; int arcs[MAX][MAX]; //保存两个顶点之间的边长 }Graph; //图的结构体 void Creat_Graph(Graph G) { int i,j; G.vextex=10; //顶点数 G.edge=18; //边的数 for(i=0;iG.vextex;i++) for(j=0;jG.vextex;j++) G.arcs[i][j]=INFINITY; //初始最大 G.arcs[0][1]=4; G.arcs[0][2]=2;G.arcs[0][3]=3; G.arcs[1][4]=9;G.arcs[1][5]=8; G.arcs[2][4]=6; G.arcs[2][5]=7;G.arcs[2][6]=8; G.arcs[3][5]=4;G.arcs[3][6]=7; G.arcs[4][7]=5; G.arcs[4][8]=6;G.arcs[5][7]=8; G.arcs[5][8]=6;G.arcs[6][7]=7; G.arcs[6][8]=5; G.arcs[7][9]=7;G.arcs[8][9]=3; } void FPath(Graph G) { int i,j; int n=10; int cost[10]; //存储子问题表的表格 int path[10]; //存储状态 for(i=0;in;i++) { cost[i]=INFINITY; path[i]=-1; } cost[9]=0;

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档