什么是算法?算法的特性有哪些
算法,指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。
特征:有穷性,算法必须能在执行有限个步骤之后终止;确切性,算法的每一步骤必须有确切的定义;输入项,一个算法有0个或多个输入,以刻画运算对象初始情况;输出项,一个算法有一个或多个输出以反映对输入数据加工后的结果;可行性,算法中执行的任何计算步骤都可被分解为基本的可执行的操作步骤。
扩展资料:
算法可以宏泛分为三类:
1、有限的、确定性算法:这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。
2、有限的、非确定算法:这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。
3、无限的算法:是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。
参考资料来源:百度百科-算法
算法,对应的英文单词是algorithm,这是一个很古老的概念,最早来自数学领域,是用于解决某一类问题的公式和思想。
计算机科学领域的算法,本质是一系列程序指令,用于解答特定的运算和逻辑问题。一般运用时间复杂度和空间复杂度来衡量算法好坏。
算法的应用领域多种多样:
运算,例如计算两个数的最大公约数。
查找,例如使用谷歌、百度搜索某一关键词得出数据和信息。
排序:例如浏览电商网站时,商品按价格从低到高进行排序。
最优决策:例如游戏中让AI角色找到迷宫的最佳路线。
参考资料:魏梦舒(@程序员小灰),《漫画算法:小灰的算法之旅》:电子工业出版社,2019-05
算法的定义
通常,定义算法为"为解决某一特定任务而规定的一个指令序列"。
算法的5个基本特性
① 有输入。一个算法必须有0个或多个输入。它们是算法开始运算前给予算法的量。这些输入取自于特定的对象的集合。它们可以使用输入语句由外部提供,也可以使用赋值语句在算法内给定。
② 有输出。一个算法应有一个或多个输出,输出的量是算法计算的结果。
③ 确定性。算法的每一步都应确切地、无歧义地定义。对于每一种情况,需要执行的动作都应严格地、清晰地规定。
④ 有穷性。一个算法无论在什么情况下都应在执行有穷步后结束。
⑤ 有效性。算法中每一条运算都必须是足够基本的。就是说,它们原则上都能精确地执行,甚至人们仅用笔和纸做有限次运算就能完成。