资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,西南科技大学,算分析与设计,1,西南科技大学,算分析与设计,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,二,二,章,章,算,算,法,法,效,效,率,率,分,分,析,析,算,法,法,效,效,率,率,(,Efficiency,),算,法,法,效,率,率,有,有,什,么,么,作,作,用,用,算,法,法,效,效,率,率,是,是,怎,怎,样,样,度,度,量,量,的,的,,,,,评,评,价,价,算,算,法,法,优,优,劣,劣,的,的,依,依,据,据,是,是,什,什,么,么,怎,样,样,完,完,成,成,算,算,法,法,算,算,法,法,效,效,率,率,分,分,析,析,算,法,法,的,的,复,复,杂,杂,性,性,算,法,法,的,的,复,复,杂,杂,性,性,是,算,算,法,法,效,效,率,率,的,的,度,度,量,量,,,,,是,是,评,评,价,价,算,算,法,法,优,优,劣,劣,的,的,重,重,要,要,依,依,据,据,。,。,一,一,个,个,算,算,法,法,的,的,复,复,杂,杂,性,性,的,的,高,高,低,低,体,体,现,现,在,在,运,运,行,行,该,该,算,算,法,法,所,所,需,需,要,要,的,的,计,计,算,算,机,机,资,资,源,源,的,的,多,多,少,少,上,上,面,面,,,,,所,所,需,需,的,的,资,资,源,源,越,越,多,多,,,,,我,我,们,们,就,就,说,说,该,该,算,算,法,法,的,的,复,复,杂,杂,性,性,越,越,高,高,;,;,反,反,之,之,,,,,所,所,需,需,的,的,资,资,源,源,越,越,低,低,,,,,则,则,该,该,算,算,法,法,的,的,复,复,杂,杂,性,性,越,越,低,低,。,。,计,算,算,机,机,的,的,资,资,源,源,,,,,最,最,重,重,要,要,的,的,是,是,时,时,间,间,和,和,空,空,间,间,(,(,即,即,存,存,储,储,器,器,),),资,资,源,源,。,。,因,因,而,而,,,,,算,算,法,法,的,的,复,复,杂,杂,性,性,有,有,时,间,间,复,复,杂,杂,性,性,和,空,间,间,复,复,杂,杂,性,性,之,分,分,。,。,算,法,法,效,效,率,率,有,有,什,什,么,么,作,作,用,用,不,言,言,而,而,喻,喻,,,,,对,对,于,于,任,任,意,意,给,给,定,定,的,的,问,问,题,题,,,,,设,设,计,计,出,出,复,复,杂,杂,性,性,尽,尽,可,可,能,能,低,低,的,的,算,算,法,法,是,是,我,我,们,们,在,在,设,设,计,计,算,算,法,法,的,的,一,一,个,个,重,重,要,要,目,目,标,标,;,;,另,另,一,一,方,方,面,面,,,,,当,当,给,给,定,定,的,的,问,问,题,题,已,已,有,有,多,多,种,种,算,算,法,法,时,时,,,,,选,选,择,择,其,其,中,中,复,复,杂,杂,性,性,最,最,低,低,者,者,,,,,是,是,我,我,们,们,在,在,选,选,用,用,算,算,法,法,应,应,遵,遵,循,循,的,的,一,一,个,个,重,重,要,要,准,准,则,则,。,。,因,因,此,此,,,,,算,算,法,法,的,的,复,复,杂,杂,性,性,分,分,析,析,对,对,算,算,法,法,的,的,设,设,计,计,或,或,选,选,用,用,有,有,着,着,重,重,要,要,的,的,指,指,导,导,意,意,义,义,和,和,实,实,用,用,价,价,值,值,。,。,问,题,题,怎,样,样,完,完,成,成,算,算,法,法,算,算,法,法,效,效,率,率,分,分,析,析,?,?,用,怎,怎,样,样,的,的,一,一,个,个,量,量,来,来,表,表,达,达,一,一,个,个,算,算,法,法,的,的,复,复,杂,杂,性,性,;,;,对,于,于,给,给,定,定,的,的,一,一,个,个,算,算,法,法,,,,,怎,怎,样,样,具,具,体,体,计,计,算,算,它,它,的,的,复,复,杂,杂,性,性,。,。,复,杂,杂,性,性,的,的,计,计,量,量,(,(,一,一,),),算,法,法,的,的,复,复,杂,杂,性,性,是,是,算,算,法,法,运,运,行,行,所,所,需,需,要,要,的,的,计,计,算,算,机,机,资,资,源,源,的,的,量,量,,,,,需,需,要,要,的,的,时,时,间,间,资,资,源,源,的,的,量,量,称,称,作,作,时,时,间,间,复,复,杂,杂,性,性,,,,,需,需,要,要,的,的,空,空,间,间,(,(,即,即,存,存,储,储,器,器,),),资,资,源,源,的,的,量,量,称,称,作,作,空,空,间,间,复,复,杂,杂,性,性,。,。,这,这,个,个,量,量,应,应,该,该,集,集,中,中,反,反,映,映,算,算,法,法,中,中,所,所,采,采,用,用,的,的,方,方,法,法,的,的,效,效,率,率,,,,,而,而,从,从,运,运,行,行,该,该,算,算,法,法,的,的,实,实,际,际,计,计,算,算,机,机,中,中,抽,抽,象,象,出,出,来,来,。,。,换,换,句,句,话,话,说,说,,,,,这,这,个,个,量,量,应,应,该,该,是,是,只,只,依,依,赖,赖,于,于,算,算,法,法,要,要,解,解,的,的,问,问,题,题,的,的,规,规,模,模,、,、,算,算,法,法,的,的,输,输,入,入,和,和,算,算,法,法,本,本,身,身,的,的,函,函,数,数,。,。,如,如,果,果,分,分,别,别,用,用,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,隐,含,含,在,在,复,复,杂,杂,性,性,函,函,数,数,名,名,当,当,中,中,,,,,因,因,而,而,将,将,(,(,2.1.1,),和,和,(,(,2.1.2,),分,分,别,别,简,简,写,写,为,为,:,:,T=T(N,I),和,S=S(N,I),。,由于时间复,杂,杂性和空间,复,复杂性概念,类,类同,计算,方,方法相似,,且,且空间复杂,性,性分析相对,地,地简单些,,所,所以将主要,地,地讨论时间,复,复杂性。,复杂性的计,量,量(三),根据,T(N,I),的概念,它,应,应是算法在,一,一台抽象计,算,算机上运行,所,所需的时间,。,。设此抽象,计,计算机所提,供,供的元运算,有,有,k,种,记为,O,1,,,O,2,,,.,,,O,k,;再设这些,元,元运算每执,行,行一次所需,要,要的时间分,别,别为,t,1,,,t,2,,,.,,,t,k,。对于给定,的,的算法,A,,设经过统,计,计,用到元,运,运算,O,i,的次数分别,为,为,e,i,,,i=1,,,2,,,.,,,k,,很明显,,对,对每一个,i,,,1=i=k,,,e,i,是,N,和,I,的函数,即,e,i,=e,i,(N,I),。那么有:,T(N,I)=t,i,e,i,(N,I)(2.1.3),其中,t,i,|i=1,2,.,k,是与,N,I,无关的常数,。,。,复杂性的计,量,量(四),下面只考虑,三,三种情况的,复,复杂性,即,最,最坏情况、,最,最好情况和,平,平均情况下,的,的时间复杂,性,性,并分别,记,记为,T,max,(N),、,T,min,(N),和,T,avg,(N),。在数学上,有,有:,其中,,D,N,是规模为,N,的合法输入,的,的集合;,I,*,是,D,N,中一个使,T(N,I,*,),达到,T,max,(N),的合法输入,,,,,I,是,D,N,中一个使,T(N,I,),到,T,min,(N),的合法输入,;,;而,P(I),是在算法的,应,应用中出现,输,输入,I,的概率。,复杂性的计,量,量(五),以上三种情,况,况下的时间,复,复杂性各从,某,某一个角度,来,来反映算法,的,的效率,各,有,有各的用处,,,,也各有各,的,的局限性。,但,但实践表明,可,可操作性最,好,好的且最有,实,实际价值的,是,是最坏情况,下,下的时间复,杂,杂性。一般,来,来说,最好,情,情况和最坏,情,情况的时间,复,复杂性是很,难,难计量的,,原,原因是对于,问,问题的任意,确,确定的规模,N,达到了,T,max,(N),的合法输入,难,难以确定,,而,而规模,N,的每一个输,入,入的概率也,难,难以预测或,确,确定。我们,有,有时也按平,均,均情况计量,时,时间复杂性,,,,但那时在,对,对,P(I),做了一些人,为,为的假设(,比,比如等概率,),)之后才进,行,行的。所做,的,的假设是否,符,符合实际总,是,是缺乏根据,。,。因此,在,最,最好情况和,平,平均情况下,的,的时间复杂,性,性分析还仅,仅,仅是停留在,理,理论上。,复杂性的渐,近,近性(一),随着经济的,发,发展、社会,的,的进步、科,学,学研究的深,入,入,要求用,计,计算机解决,的,的问题越来,越,越复杂,规,模,模越来越大,。,。但是,如,果,果对这类问,题,题的算法进,行,行分析时,,把,把所有的元,运,运算都考虑,进,进去,精打,细,细算,那么,,,,由于问题,的,的规模很大,且,且结构复杂,,,,算法分析,的,的工作量之,大,大、步骤之,繁,繁将令人难,以,以承受。因,此,此,人们提,出,出了对于规,模,模充分大、,结,结构又十分,复,复杂的问题,的,的求解算法,,,,其复杂性,分,分析应如何,简,简化的问题,。,。,复杂性的渐,近,近性(二),设,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)=3N,2,+4Nlog,2,N+7,时,,T(N),的一个答案,是,是,3N,2,,显然,3N,2,比,3N,2,+4Nlog,2,N+7,简单得多。,复杂性的渐,近,近性(三),考虑到分析,算,算法的复杂,性,性的目的在,于,于比较求解,同,同一间题的,两,两个不同算,法,法的效率,,而,而当要比较,的,的两个算法,的,的渐近复杂,性,性的阶不相,同,同时,只要,能,能确定出各,自,自的阶,就,可,可以判定哪,一,一个算法的,效,效率高。换,句,句话说,这,时,时的渐近复,杂,杂性分析只,要,要关心,T(N),的阶就够了,,,,不必
展开阅读全文