美文网首页
如何衡量一个算法的优劣?有哪些标准?

如何衡量一个算法的优劣?有哪些标准?

作者: 恐惧是万敌之首 | 来源:发表于2020-04-12 15:22 被阅读0次
如何衡量一个算法的优劣?

如何衡量一个算法的优劣,见人见智。一个好的算法首先是要能够满足场景的需求,其次是在能够最大限度的节省资源(最低成本原则),最后是实现逻辑简单,比较容易理解(本质上也是最低成本原则)。但是,在现实中硬件资源不变,算法不变情况下,算法执行的效率提高,相对应往往是资源消耗增加。一个合格的算法是在一个可以接受的范围内满足场景需求,而一个优秀的算法则是在满足场景需求的基础上,最大限度的节省资源,简化逻辑。

比如我要完成一项计算任务,要求是在5分钟执行完成。现在有算法1:需要执行1分钟,消耗内存8G;算法2需要执行3分钟,需要消耗内存256M。那么,我们应该如何选择呢?首先,这两种方案都能满足我们的需求;其次:算法1的需要消耗的资源是算法2的32倍,算法1的效率是算法2的3倍。在这种满足需求的情况下,往往更倾向于选择算法2。衡量一个算法的优劣往往要评估多方因素,结合实践,综合比较最终得出结论。

衡量一个算法有哪些标准?

衡量一个算法的的标准主要有3个:算法的执行效率算法的内存消耗算法的稳定性

算法的执行效率

往往和算法本身以及具体的数据有关系。通常会从3个维度的时间复杂度来衡量算法的的执行效率: 最好情况时间复杂度,最坏情况时间复杂度和平均情况时间复杂度。

算法的内存消耗

算法的内存消耗:往往和算法本身有关系。可以通过调整算法,以空间换时间来提升算法的执行效率。

算法的稳定性

算法的稳定性:算法的执行效率随着数据规模增长的变化也是衡量算法的稳定性的一个因素;同时,算法的内存消耗和数据规模增长的变化也是衡量算法的稳定性的一个因素。

相关文章

  • 如何衡量一个算法的优劣?有哪些标准?

    如何衡量一个算法的优劣? 如何衡量一个算法的优劣,见人见智。一个好的算法首先是要能够满足场景的需求,其次是在能够最...

  • [AlgoGo]复杂度分析

    针对解决相同问题的一系列算法,如何评价他们的优劣?如何评估哪些算法能够满足业务场景的要求?算法复杂度提供了一个度量...

  • 算法基础概念(一)

    一 . 概念 我们评估一种算法的优劣,可以使用它的时间复杂度和空间复杂度来衡量(一个算法的优劣主要从算法的执...

  • 关于大O

    算法运行的时间并不是以秒为单位衡量一个算法的优劣主要是看随着输入数据规模的增大算法执行的是时间如何变化n代表输入规...

  • 算法的时间复杂度和空间复杂度的计算

    1、时间复杂度和空间复杂度的意义 算法的时间复杂度和空间复杂度就是一种对算法优劣进行衡量的标准,前者反映了算法的执...

  • 银行贷款一本通第7课:五大维度衡量各个银行贷款优劣?

    大家好。这里是羊毛理财,上期节目中,我们提到用一些简单的标准来衡量银行贷款的优劣。那么是哪些标准呢。 一、抵押or...

  • 02-如何衡量一个算法的优劣

    算法就是为了解决一个问题而提出有效执行步骤 而一个问题的解决方案有很多,就会存在优劣之分,那么如何判断一个算法的优...

  • 可计算问题笔记

    可计算问题理论笔记 计算机可以求解哪些问题? 求解计算问题的思路 衡量求解计算问题的算法优劣--复杂度分析 复杂度...

  • 衡量算法的标准

    1、时间复杂度。 程序大概要执行的次数,而非执行的时间。 2、空间复杂度 算法执行过程中,大概所占的内存。 3、难...

  • Java冒泡排序

    一、衡量排序算法的优劣: 时间复杂度:分析关键字的比较次数和记录的移动次数 时间频度:一个算法花费的时间与算法中语...

网友评论

      本文标题:如何衡量一个算法的优劣?有哪些标准?

      本文链接:https://www.haomeiwen.com/subject/uqummhtx.html