程序和算法之间,主要有什么关系?

计算问题通常都很复杂,问题实例可能很大,解决它们需要执行数以千万计的具体操作人工计算只能处理极简单问题的规模很小的实例,不能完成大规模计算。要解决有一定规模有实际价值的问题,必须借助于能自动运行的计算机器。今天能利用的就是常见的电子计算机。要指挥其工作,就需要做出计算机能执行的程序。程序可以看作采用计算装置能够处理的语言描述的算法,由于它是算法的实际体现,又能在实际计算机上执行,因此被称为算法的实现。

程序可能用各种计算机语言描述。

例如用直接对应于特定计算机硬件的机器语言或者汇编语言。也可以用通用的高级编程语言,如C、Java、Python等。编程语言可以描述程序,定义各种数据结构,描述各种算法。

程序和算法密切相关。

在每一个程序背后都隐藏着一个或者一些算法。如果一个程序正确实现了一个能解决某个问题的算法,用这个程序处理该问题的实例就应该得到相应的解。此外,该程序运行时的各种动态性质,也应该反映它所实现的算法的性质,这样才是相应算法的合理实现。本栏目以后还会进一步讨论这个问题。

另一方面,由于程序是用计算机能处理的某种具体编程语言描述的,其中必然会包含一些与具体语言有关的细节结构和描述方式方面的特征。所用的语言不同,不仅可能影响算法描述的方便性,也可能影响到程序的运行效率。

由于这些情况,在抽象地考虑一个计算过程或考虑一个计算过程的抽象性质时,人们常用“算法”作为术语,用于指称相应计算过程的描述。而在考虑一个计算在某种语言里的具体实现和实现中的问题时,人们常用“程序”这一术语讨论相关问题。此外,有时书中描述的是一个程序,但在讨论时却说“算法”。这时实际想说的就是该程序背后的与具体语言无关的计算过程。

最后总结

1、人们使用计算机,就是要利用计算机解决现实世界的问题。为了让计算机能够按照人们的意愿去工作,需要为计算机提供一组指令,人们把解决问题的步骤用指令来描述,并把指令输入到计算机中,计算机就会按照指令来工作,这些描述工作步骤的指令就是程序。

2、算法是解决问题的思路和步骤,这些步骤是有限的,每个步骤都可以在有限时间内由人或计算机完成,并能输出执行后的结果,所有步骤执行完毕后,一定能够得到算法的最终解答。

3、算法与程序的关系是相互依附的关系,算法要在计算机上执行,必须将算法的步骤用编程语言的语法描述出来,编译通过后,方可在计算机上执行。用编程语言语法描述算法的过程就是编写程序,编写的程序编译通过后,就是可以在计算机上执行的程序了。

弄懂了这些算法和程序的问题,相信学习Python或Java就不难了。这就是一个编程思想,或者是程序的原理机制。
  人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
数据科学家必须要掌握的5种聚类算法
http://www.duozhishidai.com/article-2936-1.html
人脸识别主要有哪几种算法,技术发展到什么程度了
http://www.duozhishidai.com/article-1981-1.html
了解这些大数据和算法,让你终生受益!
http://www.duozhishidai.com/article-1841-1.html


多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台

猜你喜欢

转载自blog.csdn.net/zhinengxuexi/article/details/88745202