计算机算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求的输出的过程。
算法是对计算机上执行的计算过程的具体描述。
在数学和计算机科学之中,算法为一个计算的具体步骤,常用于计算、数据处理和自动推理。
算法是一个表示为有限长列表的有效方法。
程序算法是指:人们使用计算机,就是要利用计算机处理各种不同的问题。
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
而语言是用于描述算法的。
算法可采用多种描述语言来描述,例如,自然语言、计算机语言或某些伪语言。
各种描述语言在对问题的描述能力方面存在一定的差异。
例如,自然语言较为灵活,但不够严谨。
而计算机语言虽然严谨,但由于语法方面的限制,使得灵活性不足。
因此,许多教材中采用的是以一种计算机语言为基础,适当添加某些功能或放宽某些限制而得到的一种类语言。
这些类语言既具有计算机语言的严谨性,又具有灵活性,同时也容易上机实现,因而被广泛接受。
算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。
不同的算法可能用不同的时间、空间或效率来完成同样的任务。
一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。
或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。
一个算法应该具有以下五个重要的特征:
1.有穷性: 一个算法必须保证执行有限步之后结束;
2.确切性: 算法的每一步骤必须有确切的定义;
3.输入:一个算法有0个或多个输入,以刻画运算对象的初始情况;
4.输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。
5.可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。