计算复杂度
验证引用
虽然已尽一切努力遵循引用风格规则,但可能会有一些差异。如果您有任何问题,请参考相应的样式手册或其他资料。
选择引用格式
反馈
谢谢您的反馈
我们的编辑将审阅你所提交的内容,并决定是否修改文章。
- 关键人物:
- 曼努埃尔·布卢姆 莱斯利勇敢的 姚治智 法学博士Hartmanis 约翰Hopcroft
计算复杂度,一种计算资源(时间和空间)量的度量算法运行时消耗。计算机科学家使用数学方法测量复杂性这使他们能够在编写代码之前预测程序的运行速度有多快算法会跑多少内存这需要。这样的预测对程序员来说是很重要的指导实现并选择算法对于实际应用。
计算复杂度是一个连续体,因为有些算法需要线性时间(即所需时间直接随着处理列表、图或网络中条目或节点的数量而增加),而另一些算法则需要二次甚至指数时间来完成(即所需时间随着条目数量的平方或该数字的指数而增加)。在这个连续体的另一端是难以解决的问题——这些问题的解决方法无法有效实现.对于这些问题,计算机科学家正在寻找答案启发式算法几乎可以解决问题,并在合理的时间内运行。
更遥远的是那些可以表述但无法解决的算法问题;也就是说,可以证明没有程序可以编写来解决这个问题。无法解决的算法问题的一个经典例子是停止的问题,即没有程序能够预测其他程序在有限步数后是否会停止。停车问题的不可解性具有直接的实际意义软件发展。例如,它将是无聊的尝试开发一种软件工具,以预测正在开发的另一个程序是否具有无限循环使用它(尽管有这样一个工具会非常有益)。