- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机算法设计与分析小论文汇编
计算机算法设计与分析小论文摘要:算法是一个系列解决问题的清晰指令,即在有限时间内能够对一定规范的输入,能够得到所需要的输出。如果一个算法本身是有缺陷的!那么他往往不是这个问题的最佳解决方法,可见一个算法的优劣是通过一定的准则来规定的。通过这学期的对《计算机算法分析设计》这门课程的学习让我们充分的了解到了计算机算法的多样性和复杂性,让我们更加细心和耐心的去对待这门课程。例如甲某要去某个地方旅游,他有很多种方案到旅游地,但是不见的每种方案都是合理最优的!这时就是需要考虑透过一定的算法来得到自己的最优路线。所以可见算法就是以最少的成本、最快的速度、最好的质量开发出合适各种各样应用需求的软件,必须遵循软件工程的原则,设计出高效率的程序。一个高效的程序不仅需要编程技巧,更需要合理的数据组织和清晰高效的算法。目前我们将进行常见的算法分析设计策略介绍:递归算法 1.1递归算法介绍:直接或间接的调用自身的算法称为递归算法。或者说就是用自己来定义自己,不断调用自己的某一种状态。 1.2递归算法满足的条件(1)递归满足2个条件:1)有反复执行的过程(调用自身)??? 2)有跳出反复执行过程的条件(递归出口) 1.3递归例子递归例子:阶乘问题n! = n * (n-1) * (n-2) * ...* 1(n0)//阶乘intresult(int i){int sum = 0;if (0 == i)return (1);elsesum = i * result(i-1);return sum;}可见一个递归算法都有一个比较特殊的特点,那就是要先处理一些比较特殊的情况再处理递归关系。如上例中如果是0!的话!那么他的阶乘就是1,所以先处理0!这个特殊情况,然后再调用其他的递归关系得到自己想要的阶乘。比如当我们想要求出4!的结果那么我们就需要调用result(3)的结果而result(3)又要调用result(2)的结果!就这样直到得出答案为止。在我们日常,递归算法的出现可以帮助我们解决很多问题,正因为它的:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。分治算法2.1分治算法介绍:一个分治算法把问题实例划分成若干子实例(多数情况是分成两个),并分别递归地解决每个子实例,然后把这些子实例的解组合起来,得到原问题实例的解。2.2 分治算法的特性规模小,则很容易解决2)大问题可以分为若干规模小的相同问题3)利用子问题的解可以合并成该问题的解2.3分治算法的遇到问题为了阐明这个方法,考虑这样一问题:在一个整数组A[1...n]中,同时寻找最大值和最小值。下面我们来看一下用分治策略:将数组分割成两半,A[1...n/2]和A[(n/2)+1...n],在每一半中找到最大值和最小值,并返回这两个最小值中的最小值及这两个最大值中的最大值。过程?Min-Maxⅰ输入 ?n个整数元素的数组A[1...n]n为2的幂ⅱ输出 ?(x,y), A中的最大元素和最小元素if high-low=1 then if A[low]A[high] then return (A[low],A[high]);elsereturn (A[high],A[low]);end if elsemid==[(low+high)/2];x1==min(low,mid); y1==max(low,mid);x2==min(mid+1,high); y2==min(mid+1,high);x==min(x1,x2)y==max(y1,y2)return (x,y)end if可见当我们在一个数组中如何同时选择最大最小值时,分治算法时一个不错当选择。如上例中所示,我们把一个数组分成了low部分和high部分两个较小当部分,然后求出他们的mid。用low high部分分别和mid比较把其最大最小值进行存放,最后再比较存放数当最大最小值。我们考虑的例子中只考虑了时2的幂的情况。而且分成的子问题都是相互独立的,如果子问题不独立而是出现重复子问题那往往我们选择的不是分治算法而是采用动态规划算法求解更加便利。3.动态规划:3.1动态规划介绍动态规划算法,就是递推+重复子问题。该算法效率主要与重复子问题的处理有关。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的.典型的题目有陪审团、最大公共子串问题,流水作业调度,矩阵乘法背包问题和0-1背包问题3.2动态规划介绍例子例:最大公共子串问题这个是动态规划的基础题目。这个问题,不妨设第一个串为a,长度为n,第二个串为b,长度m。那么最长的子序列长度为f(n,m)当a[n
您可能关注的文档
- 计算机应用基础任务化教程汇编.ppt
- 计算机应用基础课件(最新版)汇编.ppt
- 计算机应用基础考前辅导讲义汇编.ppt
- 计算机应用基础——第一章(下)汇编.pptx
- 计算机应用基础第一章汇编.ppt
- 计算机应用基础全套PPT电子课件教案汇编.ppt
- 计算机应用基础win7汇编.ppt
- 计算机技术领域新进展汇编.doc
- 计算机技能高考基础知识(常考知识点记忆)汇编.doc
- 计算机技能高考模拟试卷4汇编.docx
- 高频文体04 应用文写作之通知(写作专练)(原卷版)-2025-2026学年英语高考复习写作专题讲练(全国通用).docx
- 专题一 如何备考 -2026年高考英语读后续写支架式精讲课件(全国通用).pptx
- 专题02 写作思路 -2026年高考英语读后续写支架式精讲课件(全国通用).pptx
- 专题03 读懂原文 -2026年高考英语读后续写支架式精讲课件(全国通用).pptx
- 专题05 段落衔接 -2026年高考英语读后续写支架式精讲课件(全国通用).pptx
- 专题01 题型解读 -2026年高考英语读后续写支架式精讲课件(全国通用).pptx
- 全国优质课一等奖高中语文统编版必修上册《我与地坛(节选)》 公开课课件.pptx
- 全国优质课一等奖高中语文统编版必修上册《师说》 公开课课件.pptx
- 全国优质课一等奖高中语文统编版必修上册《赤壁赋》 公开课课件.pptx
- 全国优质课一等奖高中语文统编版必修上册《故都的秋》 公开课课件.pptx
文档评论(0)