算法 Algorithm
算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点说,就是计
算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算
法。前者是推理实现的算法,后者是操作实现的算法。
一个算法应该具有以下五个重要的特征:
1. 有穷性: 一个算法必须保证执行有限步之后结束;
2. 确切性: 算法的每一步骤必须有确切的定义;
3. 输入:一个算法有 0 个或多个输入,以刻画运算对象的初始情况,所谓 0 个输入是
指算法本身定除了初始条件;
4. 输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的
算法是毫无意义的;
5. 可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完
成。
Did you know
Algorithm 一词的由来
Algorithm(算法)一词本身就十分有趣。初看起来,这个词好像是
某人打算要写“Logarithm”(对数)一词但却把头四个字母写的前后颠倒了。
这个词一直到 1957 年之前在 Webster's New World Dictionary(
《韦氏
新世界词典》
)中还未出现,我们只能找到带有它的古代涵义的较老形
式的“Algorism”(算术),指的是用阿拉伯数字进行算术运算的过程。在
中世纪时,珠算家用算盘进行计算,而算术家用算术进行计算。中世
纪之后,对这个词的起源已经拿不准了,早期的语言学家试图推断它
的来历,认为它是从把 algiros(费力的)+arithmos(数字)组合起来派生而成的,但另一些人
则不同意这种说法,认为这个词是从“喀斯迪尔国王 Algor”派生而来的。最后,数学史学家
发现了 algorism(算术)一词的真实起源:它来源于著名的 Persian Textbook(
《波斯教科
书》
)的作者的名字 Abu Ja'far Mohammed ibn Mûsâ al-Khowârizm (约公元前 825 年)——
从字面上看,这个名字的意思是“Ja'far 的父亲,Mohammed 和 Mûsâ 的儿子,Khowârizm 的
本地人”。Khowârizm 是前苏联 XИBA(基发) 的小城镇 。Al-Khowârizm 写了著名的书 Kitab
al jabr w'al-muqabala (
《复原和化简的规则》
);另一个词,“algebra”(代数),是从他的书
的标题引出来的,尽管这本书实际上根本不是讲代数的。
逐渐地,“algorism”的形式和意义就变得面目全非了。如牛津英语字典所说明的,这
个词是由于同 arithmetic(算术)相混淆而形成的错拼词。由 algorism 又变成 algorithm。一
本早期的德文数学词典 Vollstandiges Mathematisches Lexicon (
《数学大全辞典》
) ,给