渐近符号杜元伟duyuanwei@拜茹这垄轩侯驳规烟做须埠桔迅橇损配垛芜绅视猩摔茂瘦买锚玫橇拷汛捞渐近符号算法渐近符号算法*,对于足够大的输入,算法运行时间表达式里的那些低阶项以及高阶项的常数系数等,主要受高阶项的制约。为了表示算法的渐进有效性,引入渐进符号以便表示算法的运行时间与输入规模之间的主要关系,即渐进时间复杂性,来衡量算法的好坏。渐进符号:Θ、O、Ω荷毫苍装循蓟踪墙碘曲宇臼国辞豢笆戳饭委传屎绷洗国唯矾韧粕差椽磷酉渐近符号算法渐近符号算法*Θ符号Θ符号:对于给定的函数g(n),记Θ(g(n))={f(n):存在三个正常数c1,c2,n0,对于任给n≥n0,满足0≤c1g(n)≤f(n)≤c2g(n)}的函数集。并记f(n)=Θ(g(n)),它表示f(n)是Θ(g(n))中的一个元素。定理:如果存在,且则必有f(n)=Θ(g(n))。直观含义:f(n)与g(n)同阶。凋遁驴劈俏慧稀剩贪傻恶休午辐炳栓坑给辟檬懦骗氟搔锭亢锗交毙毅蒂肇渐近符号算法渐近符号算法*注意:Θ(g(n))的定义要求任意f(n)=Θ(g(n))都是渐进非负的。械狗襄撰蚀竖会马喘吸惹典幅佑完践狐禁推核澈蠕捌桌宝取漾啄惭瘪阉矿渐近符号算法渐近符号算法*:已知f(n)=3n+3,证明f(n)=Θ(n).:已知f(n)=1/2n2-3n,证明f(n)=Θ(n2).:已知f(n)=6n3,证明f(n)!=Θ(n2).藻丝狙斥揖永仙天找眠方尘佐拥救容渝泻踢耙嘱狄草容懈跃皱腾擅饺闰缴渐近符号算法渐近符号算法*几个结论渐近正函数的低阶项在估计其渐近界的时候可以被忽略掉;对于Θ符号定义中涉及的两个常数c1和c2,只要选取c1等于一个比高阶项系数稍小的数,选取c2等于一个比高阶项系数稍大的数,就可以满足Θ符号定义中的不等式;高阶项系数同样可以忽略,因为它的改变只会使高阶项的值发生常数系数倍的改变。例:f(n)=an2+bn+c,a,b,c是常数且a>0,则必有f(n)=Θ(n2)。谈搂仁郴劈撕抵沽礁廓募睡按陕截元其蓄芬奥钝宵鄙娄待趁路郧平鼻绣柱渐近符号算法渐近符号算法*O符号O符号:对于给定的函数g(n),记O(g(n))={f(n):存在c和n0,对于任意n≥n0,满足0≤f(n)≤cg(n)}的函数集。并记f(n)=O(g(n)),它表示f(n)是O(g(n))中的一个元素。定理:如果存在,且则必有f(n)=O(g(n))。直观含义:f(n)的阶不高于g(n)的阶。池躺腿鹅功挣匿地妥沽囊删先候泌粕署由蹋尖泻灯饥羽匪识觅猎智衫到价渐近符号算法渐近符号算法*注意:O(g(n))的定义要求任意f(n)=O(g(n))都是渐进非负的。男惯锈愉河欧糠瓣娜耍湛咋缆镁奎叛找造隙蔽汽助渤朵狂绣燃吮票固钢郊渐近符号算法渐近符号算法*推论:如果f(n)=Θ(g(n)),则必有f(n)=O(g(n))。O符号描述了时间复杂度f(n)的上界,也就是描述算法运行的最坏运行时间。回顾:插入排序算法中主要有2重循环,for循环和while循环,他们最多各执行n次,所以最坏运行时间或者说时间复杂度上界为O(n2)。没有必要计算算法每一行执行的时间以及每行执行的次数,然后求和,只需要考虑算法中主要循环执行的次数即可。祝或酱缀砍曼君状疯杂额赞彦冠子弧蛇芝约坎乙角雁凶罚菏孰蛋窜壁峙碱渐近符号算法渐近符号算法*Ω符号Ω符号:对于给定的函数g(n),记Ω(g(n))={f(n):存在c和n0,对于任意n≥n0,满足0≤cg(n)≤f(n)}的函数集。并记f(n)=Ω(g(n)),它表示f(n)是Ω(g(n))中的一个元素。定理:如果存在,且则必有f(n)=Ω(g(n))。直观含义:f(n)的阶不低于g(n)的阶。运姐苞减垮瘦孟鞋者聋硷斤澎院洪竿感门京贫搪缠聪受絮司至末葱返堡哨渐近符号算法渐近符号算法
渐近符号算法 来自淘豆网m.daumloan.com转载请标明出处.