第 2 章 算法效率分析课件.ppt

第 2 章 算法效率分析课件.ppt

ID:57165660

大小:136.50 KB

页数:40页

时间:2020-08-02

第 2 章 算法效率分析课件.ppt_第1页
第 2 章 算法效率分析课件.ppt_第2页
第 2 章 算法效率分析课件.ppt_第3页
第 2 章 算法效率分析课件.ppt_第4页
第 2 章 算法效率分析课件.ppt_第5页
资源描述:

《第 2 章 算法效率分析课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章算法效率分析算法效率(Efficiency)算法效率有什么作用算法效率是怎样度量的,评价算法优劣的依据是什么怎样完成算法算法效率分析算法的复杂性算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。一个算法的复杂性的高低体现在运行该算法所需要的计算机资源的多少上面,所需的资源越多,我们就说该算法的复杂性越高;反之,所需的资源越低,则该算法的复杂性越低。计算机的资源,最重要的是时间和空间(即存储器)资源。因而,算法的复杂性有时间复杂性和空间复杂性之分。算法效率有什么作用不言而喻,对于任意给

2、定的问题,设计出复杂性尽可能低的算法是我们在设计算法的一个重要目标;另一方面,当给定的问题已有多种算法时,选择其中复杂性最低者,是我们在选用算法应遵循的一个重要准则。因此,算法的复杂性分析对算法的设计或选用有着重要的指导意义和实用价值。问题怎样完成算法算法效率分析?用怎样的一个量来表达一个算法的复杂性;对于给定的一个算法,怎样具体计算它的复杂性。复杂性的计量(一)算法的复杂性是算法运行所需要的计算机资源的量,需要的时间资源的量称作时间复杂性,需要的空间(即存储器)资源的量称作空间复杂性。这个量应

3、该集中反映算法中所采用的方法的效率,而从运行该算法的实际计算机中抽象出来。换句话说,这个量应该是只依赖于算法要解的问题的规模、算法的输入和算法本身的函数。如果分别用N、I和A来表示算法要解问题的规模、算法的输入和算法本身,用C表示算法的复杂性,那么应该有:C=F(N,I,A)复杂性的计量(二)其中F(N,I,A)是N,I,A的一个确定的三元函数。如果把时间复杂性和空间复杂性分开,并分别用T和S来表示,那么应该有:T=T(N,I,A)(2.1.1)和S=S(N,I,A)(2.1.2)通常,我们让A

4、隐含在复杂性函数名当中,因而将(2.1.1)和(2.1.2)分别简写为:T=T(N,I)和S=S(N,I)。由于时间复杂性和空间复杂性概念类同,计算方法相似,且空间复杂性分析相对地简单些,所以将主要地讨论时间复杂性。复杂性的计量(三)根据T(N,I)的概念,它应是算法在一台抽象计算机上运行所需的时间。设此抽象计算机所提供的元运算有k种,记为O1,O2,...,Ok;再设这些元运算每执行一次所需要的时间分别为t1,t2,...,tk。对于给定的算法A,设经过统计,用到元运算Oi的次数分别为ei,i

5、=1,2,...,k,很明显,对每一个i,1<=i<=k,ei是N和I的函数,即ei=ei(N,I)。那么有:T(N,I)=∑tiei(N,I)(2.1.3)其中{ti

6、i=1,2,..,k},是与N,I无关的常数。复杂性的计量(四)下面只考虑三种情况的复杂性,即最坏情况、最好情况和平均情况下的时间复杂性,并分别记为Tmax(N)、Tmin(N)和Tavg(N)。在数学上有:其中,DN是规模为N的合法输入的集合;I*是DN中一个使T(N,I*)达到Tmax(N)的合法输入,I~是DN中一个使T(

7、N,I~)到Tmin(N)的合法输入;而P(I)是在算法的应用中出现输入I的概率。复杂性的计量(五)以上三种情况下的时间复杂性各从某一个角度来反映算法的效率,各有各的用处,也各有各的局限性。但实践表明可操作性最好的且最有实际价值的是最坏情况下的时间复杂性。一般来说,最好情况和最坏情况的时间复杂性是很难计量的,原因是对于问题的任意确定的规模N达到了Tmax(N)的合法输入难以确定,而规模N的每一个输入的概率也难以预测或确定。我们有时也按平均情况计量时间复杂性,但那时在对P(I)做了一些人为的假设(

8、比如等概率)之后才进行的。所做的假设是否符合实际总是缺乏根据。因此,在最好情况和平均情况下的时间复杂性分析还仅仅是停留在理论上。复杂性的渐近性(一)随着经济的发展、社会的进步、科学研究的深入,要求用计算机解决的问题越来越复杂,规模越来越大。但是,如果对这类问题的算法进行分析时,把所有的元运算都考虑进去,精打细算,那么,由于问题的规模很大且结构复杂,算法分析的工作量之大、步骤之繁将令人难以承受。因此,人们提出了对于规模充分大、结构又十分复杂的问题的求解算法,其复杂性分析应如何简化的问题。复杂性的渐

9、近性(二)设T(N)是在第二段中所定义的关于算法A的复杂性函数。一般说来,当N单调增加且趋于∞时,T(N)也将单调增加趋于∞。对于T(N),如果存在T’(N),使得当N→∞时有:(T(N)-T’(N))/T(N)→0我们就说T’(N)是T(N)当N→∞时的渐近性态,或叫T’(N)为算法A当N→∞的渐近复杂性而与T(N)相区别,因为在数学上,T’(N)是T(N)当N→∞时的渐近表达式。T’(N)是T(N)中略去低阶项所留下的主项。所以它无疑比T(N)来得简单。比如当T(N)=3N2+4Nlog2N

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。