**算法是为了解决一个问题而设计的一种策略。** **目的**是为了求解一个问题,**算法本身**就是一系列解题步骤。这些步骤也就是执行次序清楚的要被执行的操作。我们描述算法,可以用正常的说话也就是自然语言和伪代码(掺了code的正常的说话)。 这样看来,算法的五大特征就非常的科学合理了,五大特征就是为了保证算法是有效的解题策略。这里说的解题就是解决问题。 五大特征:(没按顺序来,个人觉得这个顺序比较容易记) 1\. 2. 输入项和输出项,input and output:一个问题总要有输入吧,题目已经给定输入了那么输入项就是0项,需要程序员自己输入的话输入项就大于0项;输出项,解决问题了总要有个结论,所以有一个或多个输出。 3\. 有穷性,Finiteness。执行有限个步骤之后终止。不终止没结果对不对。 4\. 确切性,Definiteness。算法的每一步骤必须有确切的定义。算法是描述性的,没有确切的定义无法准确用程序来实现。 5\. 可行性,Effectiveness。算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。