算法具有五个基本特性:输入、输出、有穷性、确定性和可行性。

输入输出

算法允许具有零个或多个输入,但是必须至少有一个或多个输出。 算法允许输入这个不难理解,但有些情况例外,比如我们写一个函数只想输出固定的 “hello world” 就可以不需要输入参数了!但是算法是一定需要有输出的,因为解决完问题一定要有结果!那么对于算法而言输出的形式可以是打印输出,也可以是返回一个或多个值等。

有穷性

有穷性是指算法在执行有限的步骤之后,可以自动结束而不会出现无限循环,并且每一个步骤的执行时间都是在可接受的范围内。直白一些说就是算法的实现代码不能是死循环的!并且目标是1分钟内实现结果算法却要执行1年!这样虽然有穷但是并不是合格的算法!

确定性

确定性是指算法的每一步骤都具有确定的含义,不会出现二义性。举个例子来说就是有确定的输入就应该有固定的输出!不能是这次输入A得到结果B,下一次输入A却得到结果C!这就违反了确定性原则!

可行性

可行性是指在现有的条件下算法的每一个步骤都应该是可以实现的而不是只是空想或者你设计了一个20年之后可以实现的算法,这个在当下都是没有意义的。