算法分析之课程设计实验报告.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文档。上传文档
查看更多
算法分析之课程设计实验报告

PAGE 3华中科技大学文华学院《算法分析与设计》课程设计报告专业:计算机科学与技术班级:2班姓名:肖红红学号:070104021117指导老师:秦明设计时间:5周-12周目录实验1 用分治法进行归并分类1.1归并分类思想……………………………………. …31.2归并分类流程图……………………………………31.3归并分类源程序…………………………………….41.4归并分类结果截图………………………………….5实验2 用分治法进行快速分类2.1快速分类思想及代码………………………………..62.2快速分类流程图…………………………72.3快速分类源程序…………………………82.4快速分类结果截图…………………………………8实验3 贪心算法求背包问题3.1 背包问题思想…………………………….. ………93.2 背包问题流程图…………………………93.3背包问题源程序…………………………103.3 背包问题结果截图………………………………..11实验4 贪心算法求单源点最短路径 4.1单源点最短路径思想………………………………124.2单源点最短路径流程图…………………124.3单源点最短路径源程序……………………………13 4.4单源点最短路径结果截图…………………………14心得体会………………………………………………………15实验一:《归并排序》1.1归并排序设计思想:归并排序采用的是分治策略,主要分为3个过程。第一, 分解: 把待排序的 n 个元素的序列分解成两个子序列, 每个子序列包括 n/2 个元素。第二, 治理: 对每个子序列分别调用归并排序MergeSort, 进行递归操作。第三, 合并: 将已分类的两个序列合并成一个含有n个元素的分好累的序列,并生成最后的排序结果。1.2归并排序流程图如下:开始,输入数组A(1:n)开始,输入数组A(1:n)将A分为2个集合A(1)…A(n/2)和A(n/2+1)…A(n)注:A(n/2)和A(n)均取下限值分别对两个集合单独分类并按非降次序列分别归并A(1)…A(n/是否归并完全输出最后序列,结束 否是1.3源程序如下:#includestdio.h#define LENGTH 50int a[LENGTH],b[LENGTH]; 设置数组void Mergr(int low,int mid,int high) //使用辅助数组归并两个已经分类的集合{ int h,j,k,i; h=low; j=mid+1; k=low; while(h=midj=high) //当2个集合都没有取尽时 { if(a[h]=a[j]) { b[k]=a[h]; h++; } else { b[k]=a[j]; j++; } k++; } if(hmid) //处理剩余的元素 { for(i=j;i=high;i++) { b[k]=a[i]; k++; } } else { for(i=h;i=mid;i++) { b[k]=a[i]; k++; } } for(i=low;i=high;i++) //将已经归并的集合复制到数组A { a[i]=b[i]; }}void Mergesort(int low,int high) //归并分类{ int mid; if(lowhigh) { mid=(int)((high+low)/2); Mergesort(low,mid); //将一个子集合分类 Mergesort(mid+1,high); //将另一个子集合分类 Mergr(low,mid,high); //归并2个已经分类的集合 }}void main(){ int i,length; printf(Please input the total numbers:\n); scanf(%d,length); printf( input your members:\n); for(i=0;ilength;i++){ scanf(%d,a[i]); } Mergesort(0,length-1); printf(The new Mergesort numb

文档评论(0)

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

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

1亿VIP精品文档

相关文档