算法
问题与算法
现实中有很多需要解决的问题,一个问题可以看作是对{输入}
期待某一种{输出}
的过程。算法是用来解决一个良好定义的计算问题的工具,在现实中有着实际应用。正确的算法描述了{输入}
与{输出}
的转换关系。
衡量算法效率的常用标准是算法处理输入到得到输出所花费的时间。
NP完全问题
一个问题可能有多种候选的解决算法,但是寻找正确的算法是一件不容易的事情。有一些问题至今没有已知的有效算法,即NP完全问题,且至今也没有人能证明NP完全问题的有效算法是不存在的。
NP完全问题集有一个显著特点,如果该集合中的任何一个问题存在有效的算法,则该集合中的其他所有问题都存在有效算法。
许多NP完全问题在特定假设下存在着有效算法。
算法作为一种技术
有效的算法可以提升工程效率。计算时间是一种有限资源,好的算法可以节约时间和空间的资源。算法应当被看成一种技术,整个系统的性能不但依赖于选择快速的硬件,还依赖于选择有效的算法。