算法分析实验1.docxVIP

  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

名称: 算法设计分析实验 姓名: 杨秀龙 学号: 1107300432 班级: 创新实验111班老师: 张锦雄 日期: 2014/12/24 实验一 全排列、会场安排问题实验要求主要实验内容及要求:全排列:要求键盘输入若干个不同的字符,然后产生并显示所有的排列。会场安排问题:要求按贪心法求解问题;要求读文本文件输入活动安排时间区间数据(数据在文件中的格式如下);不能改变活动的编号,排序时不能移动活动的所有信息;按选择顺序显示活动的编号、开始时间和结束时间。输入数据的文本文件格式:第1行为活动个数,第2行开始每行一个活动,每个活动的数据有活动编号、开始时间、结束时间,用空格隔开。如:data.txt181 6 92 2 7┋┋ 有18行18 3 5实验平台1、编程环境C-Free5.02、运行环境Win7 32位核心代码全排列核心代码:void swap(char *a,char *b){ char temp;temp = *a;*a = *b;*b = temp;}//数组A[]后k个数排列算法,如果全排可去掉k参数 void perm(char A[],int k,int n){int i;if(k == 1){for(i = 0;i n;i++){coutA[i];}sum++;coutendl;}elsefor(i = n-k;i n;i++){swap(A[i],A[n-k]);perm(A,k-1,n);swap(A[i],A[n-k]);}}会场问题核心代码:while(scanf(%d,n) != EOF){HuiYi *hy = new HuiYi[n + 1];int *A = new int[n + 1];//A储存会议室最后一个会议结束时间 int k,i,j;HuiYi temp;for(i = 1;i = n;i ++){scanf(%d %d %d,hy[i].number,hy[i].startTime,hy[i].endTime);}for(i = 1;i = n;i ++)for(int j = i + 1;j = n;j ++)if(hy[i].endTime hy[j].endTime){temp = hy[i];hy[i] = hy[j];hy[j] = temp;}for(i = 1;i = n;i ++){A[i] = 0;hy[i].flag = 0;}k = 1;for(i = 1;i = n;i ++){for(j = 1;j = k;j ++)if(hy[i].startTime = A[j]){A[j] = hy[i].endTime;hy[i].flag = j;break;}if(j k){A[++k] = hy[i].endTime;//j--;hy[i].flag = j;}}实验结果截图全排列截图:会场问题截图:实验二 快速排序、最长公共子序列一、实验要求主要实验内容及要求:排序问题:要求按快速排序原理实现非减序排序;待排数据可键盘输入,也可读文本文件输入;键盘输入时待排数据个数由输入确定,文件输入时数据格式如下所示;排序时不能移动数据;要求显示排序结果。输入数据的文本文件格式:第1行为数据个数,第2行开始每行一个数据。如:data.txt1419.430.43┋ 有14行12.721.9最长公共子序列:要求按动态规划法原理求解最长公共子序列问题;两个序列数据可读文本文件输入(数据格式如下所示),也可通过键盘输入;要求显示结果。输入数据的文本文件格式:第1行为X序列,第2行为Y序列,两个序列允许空串出现。如:data.txtytyu5u3e7uyudgeuitdyruftguryg7t857t57gy7二、实验平台1、编程环境 Eclipse java环境2、运行环境Win7 32位三、核心代码快速排序核心代码:// 两个数互相交换public static void swap(int[] R1,int a, int b){int temp;temp = R1[a];R1[a] = R1[b];R1[b] = temp;}// 对要排序的数组进行划分public static int Partition(int[] R2, int low, int high){int i = low, j = high, pivot = R2[low];while(i j){while(i j R2[j] = pivot)j--;if(i j)swap(R2,i++,j);while(i j R2[i] = pivot)i++;if(i j)swap(R2,i,j--);}return j;}// 快速排序算法pub

文档评论(0)

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

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

1亿VIP精品文档

相关文档