算法精解_C语言描述 算法性能分析,如何评判算法!

无论是在设计还是应用一种广泛认可的算法时,我们必须了解算法的性能如何。

算法的性能可以通过运算速度和消耗空间来评判

之所以要了解算法的性能,原因有很多方面。如,当要解决一个问题时,有很多算法可供选择,理解了算法的性能,有助于选择最合适的算法有效的解决我们的问题。

举例来说,垃圾回收算法,它用来回收从堆上分配的动态存储空间,并且需要相当长的时间来运行。认识到这一点,我们就能注意只在适当的时候运用此算法。

理解和确定算法性能的方法和维度包括:最坏情况分析、O表示法、计算复杂度。

最坏情况分析

通常用来评判算法性能的三种情况是:最佳情况大笑、平均情况微笑与最坏情况难过

理解每种情况是如何产生的对于分析算法来说非常重要,因为算法在不同情况下的性能差异可能很大。例如,线性搜索是一种自然但效率低下的搜索技术,它简单的从数据集的头部遍历到尾部。最佳情况是要查找的元素处于数据集的第1个位置,这样仅在遍历一个元素之后就找到目标元素。最坏情况下,目标元素在数据集的最后一个位置,这样必须在遍历完所有元素之后才能找到目标元素。平均情况下,可能在数据集中间的某个位置找到目标元素。

为什么要做最坏情况分析

理解一种算法在各种情况下有怎么样的性能是非常重要的,但是通常情况下,我们更关心算法在最坏情况下的性能如何:

  • 许多算法在最坏情况下会消耗相当长的时间。例如,搜索元素时,数据集中根本没有我们想要查找的那个元素。可以想象一下,这种情况在数据库查找应用中经常出现。
  • 考虑算法在最佳情况下的性能没有太多意义,因为很多算法在最佳情况下的表现都相同。例如,在最佳情况下,几乎所有的算法都可以在一次查找中找到元素,而这并不能说明到底哪种算法更好。
  • 分析算法平均情况下的性能往往不太容易。甚至我们很难去界定哪种情况属于“平均情况”。通常我们不能精确获得平均情况下的算法性能,这是因为我们无法准确控制算法的执行状态。
  • 最坏情况可以告诉我们算法性能 的上限。分析一个算法的最坏情况,可以保证在任何情况下此算法的表现都不会比最坏情况差,而其他情况肯定比最坏情况要好。

虽然 我们把最坏情况当做很多算法性能的度量,但也有例外。因为有些时候我们也会平均情况来评判算法的性能。例如:随机算法中的快速排序算法,它使用了概率论理论的基础,从而有效地保证了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值