算法的概念及描述
广义的算法是指解决问题或完成任务的一系列步骤
在计算机科学领域内,算法指的是用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的,无歧义的,有限步骤的集合
算法的特征
有穷性:算法必须能在执行有限个步骤之后终止。 如“列出所有的素数”就不符合有穷性的特征,因为素数的个数是无限的
确定性:算法的每一步骤必须有确切的定义。
输入项:一个算法有0个或多个输入。如计算“5的阶乘”,这个算法不需要从外界获取任何信息,因为它内部已经给出了要计算阶乘的常数(例如5)。因此,这是一个零输入算法。如计算“两个整数的和”,这个算法需要从用户那里获取两个整数作为输入,然后才能进行计算。因此,这是一个多输入算法。
输出项:一个算法有一个或多个输出。
可行性:算法中每一步操作与要求都应该是算法执行者可以实施的。1/0,因为0不能作为分母,所以不符合可行性要求
算法的要素
数据:算法解决问题,必须明确参与算法的初始数据、运算时产生的中间数据以及问题结局的结果数据
运算:在对数据进行运算时,明确每一步运算是什么。
控制转移:在算法执行过程中,根据数据或者运算结果进行不同的处理,需要用控制转移来执行不同的操作。如分支结构和控制结构
算法的描述
自然语言:如汉语、英语、德语,法语等等
流程图:用自然语言通俗易懂,但也容易产生歧义。流程图用一些图形符号表示规定的操作,用带箭头的流程线连接这些图形符号,表示操作的方向。