算法分析(简介)

本文介绍了算法分析的核心——时间复杂性和空间复杂性,强调了在设计和选择算法时降低复杂性的重要性。通过大O表示法阐述了算法运行时间的上限,并探讨了最坏情况和平均情况的运行时间。此外,还提到了忽略低阶项和常数系数对分析算法增长率的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   算法分析即指对一个算法所需要的资源进行预测,内存,通信带宽或计算机硬件等资源偶尔是我们主要关心的,一个算法所需要的资源越多,该算法的复杂性越高,反之,所需要的资源越少,该算法的复杂性越低,在计算机的资源中,最重要的是时间和空间(即存储器)资源,因此算法复杂性有时间复杂性和空间复杂性之分,不言而喻,在对给定问题设计算法时,设计出复杂性尽可能低的算法是设计算法时追求的目标,如果给的问题已有多种算法时,选择复杂性最低者,是在选用算法时遵循的重要准则,更确切的说,算法的复杂性是算法运行时所需要的计算机资源的量,需要时间资源称为时间复杂性,需要的空间资源称为空间复杂性,如果分别用N,I,A,表示算法要解问题的规模,算法的输入和算法本身的函数,而且用C表示复杂性,那么应该有C=F(N,I,A)。其中F(N,I,A)是N,I,A的确定的三元函数,如果把时间复杂性和空间复杂性分开,并分别用T和S来表示,那么应该有T=T(N,I,A),S=S(N,I,A)。通常让A隐含在复杂性函数名当中,因而将T和S分别简写为T=T(N,I),S=S(N,I)。

  由于时间复杂性与空间复杂性概念相同,计量方法相似,且空间复杂性的分析相对简单,所以现在主要讨论时间复杂性。

   复杂性分析的常用符号:若存在两个正常数c,n0,对于任意n>n0,都有|T(n)|<=c|F(n)|,则称,T(n)集合在集合O(F(n))中。记作T(n)=O(F(n)),O读作“大欧”。他的直观含义是:T(n)的增长速度不会比F(n)差,大O表示法(big-Oh notation)表示的是时间运行的上限,同理可以定义下限Ω,如果上下限相等,还可以用Θ表示。

    最坏情况和平均情况:1一个算法的最坏情况运行时间是在任何输入下运行时间的一个上界。知道了这一点,就能确保算法的运行时间不会比这一时间长。2对于某些算法,最坏情况还是出现的相当频繁的。3大致上看来,“平均情况”和最坏情况一样差。

    增长的量级:运行时间的增长率,或称增长的量级,这样,我们就只考虑公式中的最高项,因为当n很大时,低阶项相当来说不太重要,,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值