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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

喻定 算法设计论文Word文件下载.docx

1、对于计算机科学来说,算法的概念是至关重要的,例如,在一个大型软件系统的开发中,设计出有效的算法将起决定性的作用。算法是解决问题的一种方法或一个过程。程序是算法用某种设计语言具体实现描。计算机的普及极大的改变了人们的生活。目前,各行业、各领域都广泛采用了计算机信息技术,并由此产生出开发各种应用软件的需求。为了以最小的成本、最快的速度、最好的质量开发出适合各种应用需求的软件,必须遵循软件工程的原则。设计一个高效的程序不仅需要编程小技巧,更需要合理的数据组织和清晰高效的素算法,这正是计算机科学领域数据结构与算法设计所研究的主要内容。二常见的算法分析设计策略介绍1动态规划动态规划算法与分治法类似,其基

2、本思想也是将待求解问题分解成若干个子问题。但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法。动态规划的一般步骤:找出最优解的性质,并刻划其结构特征。递归地定义最优值。以自底向上的方式计算出最优值。根据计算最优值时得到的信息,构造最优解。2贪心算法顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。具有最优子结构性质的问题,用贪心算法

3、更简单、更直接且解题效率更高。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。三解决问题的过程1 0-1背包问题用动态规划算法问题描述 0-1背包问题:给定 n 种物品和一个背包。物品i的重量是 Wi,其价值为 Vi,背包的容量是 c。问应如何选择装入背包中的物品,使得装入背包中的物品总价值最大。在选择装入背包的物品时,对每种物品i只能有两种选择,装入包或者不装入。不能物品i装入包多次,也不能只装入部分的

4、物品i。此问题的形式化描述是,给定 c0,Wi0,Vi0,1in,要求找出一个 n 元0-1 向量(x1,x2,xn),Xi0,1,1in,使得=c,而且达到最大。因此 0-1 背包问题是一个特殊的整数规划问题:max=C0,1,1=i=n算法描述:设所给 0-1背包问题的子问题 max(Vk * Xk) k=i.n ;max(Vk * Xk)= j (k=i.n );Xk0,1,i=k=n ;的最优值为 m(i,j)是背包容量为 j,可选择物品为i,i+1,,n时 0-1背包问题的最优值。程序:main()Intm,n,i,j,r;Int x100,w100,p100,p1100,b100,

5、s,max;input(m,n);/1.当所有物体重量和比书包的容量小,那么这些/物体全选for(i=1,s=0;i=n;i+)input(wi,pi);P1i=pi;s=s+wi;/所有物体的重量和if(sp1max/wmax)max=j;p1max=0;bi=max;float r=m;/背包容纳总量x=;/初始化为0if(wbir)break;/是否物体总重小于书包/的容量xi=1;r=r-wbi;2部分背包问题用贪心算法问题描述:假定有 n 个物体和一个背包,物体i有质量wi,价值为 pi,而背包的载荷能力为 M。若将物体i的一部分 xi(1=n,0=xi=1)装入背包中,则有价值 p

6、i*xi。在约束条件(w1*x1+w2*x2+wn*xn)=M 下使目标(p1*x1+p2*x2+pn*xn)达到极大,此处00,1=n.这个问题称为背包问题(Knapsack problem)。算法描述首先计算每种物品单位重量的价值 Vi/Wi,然后,依贪心选择策略,将尽可能多的单位重量价值最高的物品装入背包。若将这种物品全部装入背包后,背包内的物品总重量未超过 C,则选择单位重量价值次高的物品并尽可能多地装入背包。依此策略一直地进行下去,直到背包装满为止。程序代码:/m为总重量,n为个体数量,w为重量,p为价/值 r为剩余容量 x为物体的百分数/3.按已排好的顺序放到书包里sm and i

7、m)/当物体重量不等于书包的容量/减去前一个物体s-wbi-1的重量wbi-1=m-(s-wbi-1);r=m-wbi-1;xi=r/wi;/取物体的几分之几正好满足剩余/容量Wbi=xiWbi;/加上最后一个for(j=1;j=i-1;j=j+1)/逐个输出/所选每个物体的序号和重量print(“choose”,bj,”weight”,wbj);动态规划算法:全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解。动态规划的关键是状态转移方程,即如何由以求出的局部最优解来推导全局最优解。边界条件:即最简单的,可以直接得出的局部最优解贪心算法:贪心算法中

8、,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留。由前面中的介绍,可以知道贪心法正确的条件是:每一步的最优解一定包含上一步的最优解。四结合自身情况谈谈本课程学习体会及其影响算法是编程最终的部分,想要把程序写的好,就要用好的算法。不同的问题有不同的算法模型,同一个问题也可能有不同的算法描述。每种算是都有自己的时间复杂度和空间复杂度。并不是说时间复杂度低或者空间复杂度就是一个好的算法,这要看用来解决什么问题,还编程的环境结合起来评价的。所以学编程的人应该把算法学好,这样才有利于编程,也有利于想出更好的算法来解决现实中的问题。以前我写程序只是习惯性的选自己常用的一种算法,无论是什么样的问题都会去用一个算法。从没有考虑算法是不是适合这个问题。也不会去考虑时间复杂度和空间复杂。可能是因为所编的程序比较短,算法的优越性体现不出。在学完了这本书之后,我才只能算法的优越性有多么的重要。如果一个大程序没有好的算法来支持,程序运行花费的时间和占据的空间都将是很大的。有的可能会导致严重的错误性。我想,通过对这门课程的学期,我以后编程的时候就会首先考了算法的问题,不再是盲目的乱写。对以后的学习会有很大的帮助。参考文献 1 算法设计与分析(第二版)清华大学出版社 2 C程序设计谭浩强著清华大学出版社

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

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