如何评价一个算法的好坏:时间和空间的复杂度
首先,这个算法必须是正确的
其次,一个好的算法应该是友好的,易于人们理解和交流,并且机器可执行。
这个算法还必须足够鲁棒,即当输入数据非法或不合理时,也能正确响应或进行相应的处理
最后,它还必须具有高效率和低存储要求。
也称为时间复杂度和空间复杂度
1。时间复杂度
定义:在计算机科学中,算法的时间复杂度是定量描述算法运行时间的函数。理论上,只有将程序放在机器上并运行它,才能知道执行算法所需的时间。不过,我们有一套时间复杂度分析的方法。算法所花费的时间与其中的语句数量有关。执行次数成正比。算法中基本操作的执行次数就是算法的时间复杂度。
2。为什么时间复杂度不是用时间来衡量,而是用基本语句的执行次数来衡量?
算法执行时间取决于具体的软硬件环境。因此,算法的时间复杂度不能用执行时间的长短来衡量,而是用基本执行段数量的数量级来衡量。
3。时间复杂度
的O渐近表示法(大O表示法)是用于描述函数渐近行为的数学符号。
大O阶方法推导:
计算基本语句执行次数的数量级;
只计算基本执行次数的大小,这意味着只要基本执行次数函数的最高幂正确,所有低幂和最高幂系数都可以忽略。这简化了算法分析,并将注意力集中在最重要的一点:增长率。
如果算法包含嵌套循环,则基本语句通常是最内层循环。如果算法包含并行循环,则增加并行循环的时间复杂度。例如:
for (i=1; i
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网