环球网校是美国纳斯达克上市企业欢聚时代(NASDAQ:YY)旗下品牌 | 住房和城乡建设部 建筑人才培训合作单位
您现在的位置在: > 职业资格 > 项目管理师 > 考试动态 >

(TIPS)常见经典算法分析和研究摘

2023-08-05 来源:网络 作者:佚名

常见精典算法剖析和研究摘要:精典算法是计算机专业核心课程之一。计算机算法的异同,对于计算机软件的运用和系统的功耗具备重要的影响。算法只是计算机科学中重要的理论之一。本文对遍历算法、分治算法、动态规划算法、贪心算法等精典的算法进行研究,着力阐发算法的设计思想、优缺点及其应用,并对算法的发展进行了探求。关键词:精典算法;设计思想;异同点;应用;展望中图分类号:TP301文献标识码:A文章编号:1006-8228(2023)11-58-03andstudyonLiu,Cai,Fu(,ofLight,,Henan,China;2.ofand,ofLight):isoneofthecorein.hasgreatontheanduseof.isalsooneofthemostin.Inthispaper,thesuchasthe,,andetc.are,theidea,and,andtheoftheare,andtheoftheis.Keywords:;idea;and;0序言算法是通过基本运算及运算规定的运算次序所构成的完整的解题方法。 #

算法要求设计好有限的、确切的估算序列,通过设计好的方法和估算序列可以解决同类问题。要设计出好的算法,就应当对存在的问题有深入细心的了解,需要有独到的探讨模式,只有这么2023递归算法的优缺点,才会有奇妙的算法思想,这正是解决问题的关键。当解决问题的方法有多种多样时,才会存在不同的算法思想,而他们在解决问题时有各自的优势和不足,我们依照需求,选择出最佳方案,用最合适的算法来解决现实中的问题,并进一步探求研究未来算法的方向,这便是我们探究与发觉的本意[1]。1常见精典算法剖析1.1数组算法遍历算法是在一个函数定义或则申明的过程中直接或则间接地又读取自身的一种方式。数组算法基本思想是,把一个复杂的大问题转换为规模较小且相同的子问题来解决,可以用极少的代码来解决多次重复估算的问题,节约了运算时间。对于一些形成状况十分多的算法问题,运用降维法将是十分麻烦且不明智的,假如借助数组可以解决的话,就可以实现交换元素,函数读取函数,最终得到结果。这防止了重复估算2023递归算法的优缺点,节省了运算时间。数组的缺陷是解决问题的运行效率十分低[2],成因在于在链表读取的过程中,系统会为每一层的返回点,局部变量等开辟了堆栈来储存,并且假如出现数组读取次数过多,会出现堆栈溢出的问题,这只是很可怕的。

#

我们应当晓得数组都拿来解决这些问题,首先,它可以解决一些数据的定义,再者,它可以实现一些问题求解,但是,数据的结构方式也可以根据卷积定义。根据数组的很多适用条件,我们很容易的想起,它可以解决我们常常看到的函?担?回溯算法,以及树的递归,图的搜索等相关的问题。1.2分治算法分治算法是把一个复杂的问题分成了多个子问题,进一步细分,直至子问题可以直接求解,而子问题的解的合并就是原问题的解。分治法的基本思想是把一个不容易解决的子问题分为规模较小的相同问题,以方便可以直接求解,数组地解决某些子问题,再将得到的子问题的解合并,就得到了原问题的解。当还要解决一个键入规模(n)巨大的问题时,直接处理常常比较困难或则根本没法求解,我们希望把键入规模缩小,即分成这些份,分别去解决,但是这种小问题容易合上去因而解决整个问题。这便是分治的优势所在,简略高效。虽然分治法的合并方法并不是很容易的,有的问题的合并方式比较明晰,而有的问题的合并方式比较复杂,或许还须要讨论多种合并方案,这只是一个小缺陷。分治算法在一些应用中是简略有效的,只要碰到的问题可以分解为这些小规模的相同的子问题,且子问题独立无依赖,最后又可以合并子问题的解,就可以使用分治算法[3]。 #

在一些精典的排序问题中,分治法起到了至关重要的作用。1.3动态规划算法动态规划是一个过程,每天决策都依赖于当前的状态,之后会导致状态的转移,怎么决策就是在变化中形成进去的,这么的多阶段最优化决策解决问题的过程就是动态规划。动态规划把要求解的问题分成了这些子问题,从简略的子问题入手,求出他们的解,之后再得出最终答案。与分治算法不同的是,动态规划算法不是卷积地求解每一个子问题,而是从简略问题的解入手,进一步求解,最后再求出原问题的解,动态规划的高明之处就在于,它不会重复求解这些重复出现的子问题,即一些重叠子问题,因而估算的效率是特别高的。运用动态规划,可以保存已解决的子问题的答案,在须要的时侯再加以运用,那样消减了大量的重复估算,节约了时间。求解过程就是先找出最优解的结构,卷积定义一个最优解的值,于是以自底向下的方法估算出最优解的值,依照估算最优解的值的信息,构造出一个最优解。并且动态规划在储存后边过程形成的结果还要大量的空间,这是动态规划的显著劣势,以空间换时间。对于动态规划算法来说,它要依赖于问题原本所具备的两个重要性质,一个是最优子结构性质,另一个是子问题重叠性质[4]。

#

只有提早满足了这两个条件,动态规划算法能够发挥它的高效作用。动态规划算法的应用非常广泛,典型应用有矩?连乘,在解决矩阵连乘问题中,先从最简略的两个矩阵乘积开始,再看三个,四个,因而得到怎样进行加法运算,可以让乘积的次数最少,最后我们可以求出矩阵连乘的次数和他们怎么相加。正是以大化小,才使解决问题愈发便于。动态规划还常常应用在最长公共子序列、最大数组和数字三角形问题上。1.4贪心算法贪心算法是指在求解问题时不从整体上考虑,只作出当前最好的选择,也就是局部最优解。贪心算法的基本思想是找出整体中局部的最优解,于是按照这种最优解来得到整体的最优解。在求解最优化问题算法中,通常会包括一系列的求解方法,每一个求解方法中都有一个选择,于是得到问题的一个解。贪心算法在详细求解问题时是十分简略有效的,有时侯其实不能得到最优解,并且可以得到近似解。贪心算法只选择当前看上去最好的选择,而不去考虑它整体是不是最好的,正确的利用贪心算法,应当保证贪心策略无后效性,即:某个状态之后过程不影响当初的状态,只和当前状态有关。贪心算法对于解决这些问题都是十分有效的,由于局部最优解很容易找到,因此简略易懂,效率较高,对于许多问题都可以得到整体最优解。

#

贪心算法的劣势主要表现在它的“非理想性”。由于我们找到的问题常常并不一定符合贪心算法的适用条件,虽然达到了局部最优,也很难得到我们想要的结果。贪心算法要想有效,就应当满足问题的约束,达到局部最优的条件。如图1所示的单源路径问题,但是我们难以一眼看出最优的结果,不晓得该从哪一步走,但我们可以按照相邻顶点的路径来找出当前最好的选择,这便是先从局部最优开始[5]。我们可以用dist[i]来记录当前的每位顶点的最短路径,再从结果中找出具备最短路径的顶点,写入S集合中,等把所有的顶点都加入到了S集合中,dist就记录了源顶点到其他顶点最短的路径宽度。如表1所示:因此,贪心算法还广泛地应适于活动安排问题,背囊问题,最优装载问题等。1.5精典算法的比较精典算法有太多,每位算法都有其独特之处。本文对数组算法,分治算法,动态规划算法和贪心算法进行归纳剖析,小结了各自的异同点,如表2所示。要想真正地将算法用到恰到益处,就应当按照应用场景,在相应的条件下使用合适算法解决实际问题[6]。2未来展望这些人觉得,未来算法的重要性会变低,并且作为计算机科学领域最重要的基石之一的算法,它的重要性是会逐渐增强的。

#

但是算法也将不局限于计算机和网路,它所应用的范围也会越来越大。2.1算法在未来的重要性在这些程序员看来,编程语言最值得关注,然而随着时代的发展,算法会显得越来越有用,但是编程语言的种类越来越多,有些编程语言由小众到热门,但是有些也会从热门变为小众,技术在不停地更新换代,虽然有些东西是不变的,比如算法,数据结构,编程原理,关系型数据库原理,计算机机制结构等等。未来编程,算法必将是一种内在的“修养”,没有算法的思想和理论,就不或许成为真正的程序员。2.2算法在未来的应用现在计算机早已全面普及,售价也很低廉。当在激烈的竞争中,用户感受成为了关键,用算法去设计各式应用,是一个必定的选择。在储存方面,大数据储存是关键问题,算法能有效的减少大数据储存的效率。在科学研究方面,无论是三维模型还是数据处理,就会还要巨大的估算量,都要靠算法来解决。诸如每天都会处理数以亿计的搜索,储存几千万用户的数据,通过互联网将巨量的信息递交给每位用户,很虽然,假如没有找到好的算法,很多是不或许完成的。因此数据中心使用的是超小型并行计算机,让并行算法在并行估算的环境下执行,使处理恳求速率得到飞越式的增强。

#

2.3算法前景算法的作用在未来计算机的发展中不可估量,除了在大数据和云估算方面,也适于解决试验数据的处理和储存,还拿来研究人类基因,发明新的医疗方法,可以保障国家网路安全,预测人祸的发生等。算法在未来的机遇和挑战并存的环境中是不可或缺的,是不可以代替的。我们要用发展的目光来看待算法,与时俱进,不可忽视它,排挤它,须一直保持一颗对算法探求研究的心,力争运用算法来惠及美丽的未来。3小结本文对常用精典算法进行了概括与剖析,探究了算法的设计思想与优劣点,并按照算法的详细应深入思考算法。从剖析和研究我们可以看出,在不同的状况下,应当选择不同的算法。同时,我们也能发目前复杂的问题面前,一个正确高效的算法是十分重要的,每一个算法都有自己的异同点,在算法选择时,要考虑算法原本的特点。面对复杂的问题,要详细问题详细剖析,将复杂的问题简略化,将算法的思想与解题方法精妙地联系在一起,用科学有效的方式来解决问题,这是学习的意义所在。算法有着美丽而又远大的前景,还须要我们颇具慧心,开掘算法的潜力,惠及我们的生活。参考文献():[1]陈德裕,杭月芹.数据结构中精典算法的教学研究[J].计算机时代,2009.6:3-4[2]袁劲松,杨伟明.数组算法设计及效率剖析[J].计算机与数字安装工程,2007.2:12-13[3]李健勇,李晔,刘艳红,张杰,李建春,黄道颖.任意数目拳手的循环赛赛制分治算法[J].北京轻工业大学学报(自然科学版),2007.4:26-27[4]宛楠,张义.动态规划算法剖析[J].黄河学院学报(自然科学版),2013.7:3-6[5]常友渠,肖贵元,曾敏.贪心算法的思考与研究[J].上海电网高等本科学院学报,2008.3:31-32[6]欧阳圣,胡望宇.几种精典搜索算法研究与应用[J].计算机系统应用,2011.5:16-17

#

责编:admin 返回顶部  打印

关于我们联系我们友情链接网站声明网站地图广告服务帮助中心