ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:113.28KB ,
资源ID:16600339      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16600339.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法分析和设计Word文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法分析和设计Word文档格式.docx

1、coutn;num=(int *)malloc(n*sizeof(int);for(int i=0;ii+)*(num+i);Before sorted:nfor(i=0;*(num+i)i;j-)if(*(num+j)*(num+j-1)t=*(num+j);*(num+j)=*(num+j-1);*(num+j-1)=t;程序运行结果:2、写出汉诺塔问题的递归算法程序。写出n=3和n=4时,圆盘的移动总次数和每步移动过程。int step=0;/汉诺塔中盘子的数目void Hanoi(char c1,char c2,char c3,int n);/汉诺塔算法Please input the

2、 number of saucers:Hanoi(A,BC,n);All steps:step0)Hanoi(c1,c3,c2,n-1);Move(c1,c3,n);Hanoi(c2,c1,c3,n-1);void Move(char c1,char c2,int n)/表示将号码为n的碟子从c1移到c2step+;c1c2n 程序运行结果:三个碟子的情况:四个碟子的情况:实验二、分治算法1、熟悉二分搜索算法;2、初步掌握分治算法,分治法找最小值和最大值; 二、实验内容:掌握分治算法的基本思想,分析并掌握“二分法”。1、设a0:n-1是一个已排好序的数组。请改写二分搜索算法,使得当搜索元素x不

3、在数组中时,返回小于x的最大元素的位置I和大于x的最大元素位置j。当搜索元素在数组中时,I和j相同,均为x在数组中的位置。程序代码如下:int num10=1,2,3,4,5,7,8,9,10,11;/查找数据源的数组int n=10;/数组的长度int find;/要查找的数int former,latter;/前后的位置void FindNum(int *num,int n,int findnum,int *former,int *latter);请输入要查找的数据:find;FindNum(num,n,find,&former,&latter);if(former=latter&form

4、er!=-1&latter!=n)The location is:formerelseCannot find this number:The former location is:The latter location is:lattervoid FindNum(int *num,int n,int findnum,int *former,int *latter)/入口参数:num是入口数组地址,n表示长度,former表示前面的数的地址,latter表示后面的/出口参数:结果保存在former和latter中/如果比最小的都小,则给former和latter -1/如果比最大的都大,则给n*

5、former=0;*latter=n-1;int middle;if(findnum*(num+n-1)*(former)=n;*(latter)=n;while(*former)(*latter)middle=(*former)+(*latter)/2;if(findnum=*(num+middle)*former=middle;*latter=middle;return;else if(findnum*(num+middle)*latter=middle-1;*former=middle+1;运行结果如下:2、设有n个不同的整数排好序后存放于t0:n-1中,若存在一个下标I,0in,使得t

6、i=i,设计一个有效的算法找到这个下标。在下标从begin到end的数组中找下标等于值的下标int FindAi(int *num,int begin,int end)while(beginn)end=n-1;else if(numnbegin=n+1;return n;int num10=-1,0,2,4,9,10,12,34,45,56;FindAi(num,0,9)运行结果如下:3、使用一般方法和分治方法找最大值和最小值一般方法:使用蛮力法查找最大值和最小值:void FindMaxMinNormal(int *num, int n, int *max, int *min) int i;

7、/计数器*max=*num;*min=*num;if(*max*min=*(num+i);分治法实现:Num是数组名,Begin是开始的下标End是结束的下标Max和min是存放结果的地方void FindMaxMinDivide(int *num,int begin,int end,int *max,int *min) int tempMax1,tempMax2,tempMin1,tempMin2;tempMax1=*num;tempMin1=*num;tempMax2=*num;tempMin2=*num;if(end=begin)*max=*(num+begin);*min=*(num+

8、end);FindMaxMinDivide(num,begin,(begin+end)/2,&tempMax1,&tempMin1); FindMaxMinDivide(num,(begin+end)/2+1,end,&tempMax2,&tempMin2); if(tempMax1tempMax2)*max=tempMax1;*max=tempMax2;if(tempMin1tempMin2)*min=tempMin1;*min=tempMin2;int way;int max,min;Please input the size of the array:Input the numbers:

9、1:normal way 2:divided waynPlease input the way you want to use:way;if(way=1)FindMaxMinNormal(num,n,&max,&min);else if(way=2)FindMaxMinDivide(num,0,n-1,&the max number is:maxthe min number is:min一般方法的运行结果:分支方法的运行结果:思考与总结:算法的重要性毋庸置疑,他是软IT的重头戏。优秀的算法是一种智慧,这种智慧会产生许多社会效益和经济效益。IT是个肥沃而勃勃生机的生态圈,不断孕育着一代又一代的新

10、技术、新概念,而那些站在科技浪尖的自然成为开发者的宠儿。无论IT的浪潮多么朝夕莫测、滚滚而来,计算机和软件发展背后的根基却岿然屹立、经年不变,算法便是基础之一。虽然现在算法已经被包装到了语言和工具中,这也成为不少开发者逃避学习算法的借口。但是这并不能作为我们逃避学习算法的理由,因为这些算法对于开发者来说是透明的,往往一个算法对于某种工具来说是可行的,但是对于另一种语言或者另一种算法来说却不一定可行。况且对于程序员来说,过分依赖编译器会导致思路界定,无法深入的了解其内核。因此,当自己的软件出现无法解决的问题或者BUG时,算法就提高到了一个难以解决的地步。这种持续的依赖最终将会导致没有自己的思维模式和想法。算法也是程序员的基础,一个优秀的程序员必须对算法有着深刻的理解。虽然我们这学期的算法课没让我们收获什么实质性的东西,但是我们还是理解学校开这门课的目的。有些东西不一定是要在课上才能学到的,主要还是依靠自己,看自己到底想不想学。我们完全可以在图书馆提供的优秀资源供应下学到精深的算法思想。而这些仅仅依靠老师的几节课是无法搞定的。所以,在以后的学习生活当中,我要始终坚持算法的学习,没学到一个算法就意味着多一点获得与成功,就比别人多一点竞争优势。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1