原来,算法的起源与古代中国有着如此密切的联系。
计算机从出现至今,发展的如此迅速,就是因为它可以处理很多数据问题,在程序的设定下,计算机可以自己处理数据问题,把人类从繁复的运算中解放出来。
组成程序的核心之一便是算法。
由于计算机是机器,它不能直接识别自然语言,需要程序员将算法翻译成机器语言,让计算机得以运行。
算法(algorithm),在数学和计算机科学之中,是处理各类问题的具体运算步骤,常用于计算、数据处理和自动推理。
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和初始输入开始,经过一系列有限而清晰定义的状态最终产生输出。
这是算法方面的一些粗略的解释。下面,我们从算法的起源开始慢慢的了解一下吧。
起源
算法在中国古代文献中称为“术”,最早出现在《周髀算经》、《九章算术》。
特别是《九章算术》,给出四则运算、最大公约数、最小公倍数、开平方根、开立方根、线性方程组等诸多算法,三国时代的刘徽也给出求圆周率的算法:刘徽割圆术。
从唐代开始,关于算法论述的书就一直在出现,比如:
唐代的《算法》
宋代的《杨辉算法》
元代的《丁巨算法》
明代的《算法统宗》
清代的《开平算法》
这些书籍都有关于算法的论述,足以彰显我国古代的算术方面的发达,而中国之外的其他地域,最早关于算法的论述是9世纪的波斯数学家花拉子米。
这个花拉子米别名又叫比阿勒·霍瓦里松,拉丁文为:al-Khwarizmi。这个波斯数学家在当时提出了算法的概念,随后传到了欧洲。
后来便出现了“algorithm”这个词,意思是“花拉子米”的运算法则。
这就是西方算法单词的由来。
在现代的数学认知当中,欧几里得算法被西方人认为是史上第一个算法。(西方人当中对中国古代数学有深入了解的寥寥无几)
特征
现代计算机程序中的算法具体特征有如下几点:
1.输入:一个算法必须有零个或以上输入量。
2.输出:一个算法应有一个或以上输出量,输出量是算法计算的结果。
3.明确性:算法的描述必须无歧义,以保证算法的实际执行结果是精确地符合要求或期望,通常要求实际运行结果是确定的。
4.有限性:一些算法必须在有限个步骤内完成任务。
5.有效性:又称可行性。能够实现,算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。
效率
衡量一个算法的效率高低主要是两个尺度:时间和空间复杂度。
时间复杂度是指算法需要消耗的时间资源,即消耗的时间。随着问题规模的不断增大,上述时间复杂度不断增大,算法的执行效率越低。
空间复杂度是指算法需要消耗的空间资源。即消耗的存储空间。效率随着算法的复杂程度提升而不断下降。
如果想学习更多科技知识,可以点击关注。
如果对文章中的内容有什么困惑的地方,可以在评论区提出自己的问题,学记同大家一起交流,解决各种问题,一起进步。
青年学记 陪伴着各位青年
作者:青年学记 一名不断进步的程序猿
一起学习 一起进步
走向自立