Advertisement

大剑无锋:论评价一个算法优劣的面试指南

阅读量:

①时间复杂度:同样的输入规模(问题规模)花费多少时间

②空间复杂度:同样的输入规模花费多少空间(主要是内存)

以上两点越小越好

③稳定性(健壮性):不会因为输入的不同而导致不稳定的情况发生

④算法思路是否简单(可读性):越简单越容易实现越好

补充:

同一个问题可以通过多种不同的方法来解决;而一个方案的质量高低直接影响着它所关联的程序运行效率;算法分析的主要目标在于评估现有方案并寻求优化途径;通常情况下我们是从其时间复杂度以及占用的空间资源两方面来进行评估

时间复杂度

算法的时间复杂度被称为执行所需计算量 。通常情况下,计算机算法以问题规模n 的函数f(n)来表示,并被表示为相应的运算次数。

T(n)=Ο(f(n))

由此可见,在算法分析中,随着问题规模n的增大, 算法运行时间的增长速度与其时间复杂度函数f(n)的增长率呈现正相关关系, 并被我们称之为渐进时间复杂度

空间复杂度

算法的空间复杂度涉及哪些内存空间的消耗 。它们的计算和表示方法与时间复
杂度类似。通常使用渐近分析法来评估。相比于时间复

算法的空间复

度的问题,在分

析空
间需求时通常更为直接。

正确性

算法的正确性是评价一个算法优劣的最重要的标准。

可读性

算法的

全部评论 (0)

还没有任何评论哟~