算法学习与应用从入门到精通
上QQ阅读APP看书,第一时间看更新

1.2 计算机中的算法

知识点讲解:光盘:视频讲解\第1章\计算机中的算法.avi

众所周知,做任何事情都需要一定的步骤。计算机虽然功能强大,能够帮助人们解决很多问题,但是计算机在解决问题时,也需要遵循一定的步骤。在编写程序实现某个项目功能时,也需要遵循一定的算法。在本节的内容中,将一起探寻算法在计算机中的地位,探索算法在计算机中的基本应用知识。

1.2.1 认识计算机中的算法

计算机中的算法可分为如下两大类。

① 数值运算算法:求解数值。

② 非数值运算算法:事务管理领域。

假设有一个下面的运算:1×2×3×4×5,为了计算上述运算结果,最普通的做法是按照如下步骤进行计算。

第1步:先计算1乘以2,得到结果2。

第2步:将步骤1得到的乘积2乘以3,计算得到结果6。

第3步:将6再乘以4,计算得24。

第4步:将24再乘以5,计算得120。

最终计算结果是120,上述第1步到第4步的计算过程就是一个算法。如果想用编程的方式来解决上述运算,通常会使用如下算法来实现。

第1步:假设定义t=1。

第2步:使i=2。

第3步:使t×i,乘积仍然放在变量t中,可表示为t×it

第4步:使i的值+1,即i+1→i

第5步:如果i≤5,返回重新执行步骤3以及其后的步骤4和步骤5;否则,算法结束。

由此可见,上述算法方式就是数学中的“n! ”公式。既然有了公式,在具体编程的时候,只需使用这个公式就可以解决上述运算的问题。

再看下面的一个数学应用问题。

假设有80个学生,要求打印输出成绩在60分以上的学生。

在此用n来表示学生学号,ni表示第i个学生学号;cheng表示学生成绩,chengi表示第i个学生成绩。根据题目要求,可以写出如下算法。

第1步:1→i

第2步:如果chengi≥60,则打印输出nichengi,否则不打印输出。

第3步:i+1→i

第4步:如果i≤80,返回步骤2,否则,结束。

由此可见,算法在计算机中的地位十分重要。所以在面对一个项目应用时,一定不要立即编写程序,而是要仔细思考解决这个问题的算法是什么。想出算法之后,然后以这个算法为指导思想来编程。

1.2.2 为什么说算法是程序的灵魂

相信广大读者经过了解和学习1.2.1节的内容,已基本了解了算法在计算机编程中的重要作用,在程序开发中,算法已经成为衡量一名程序员水平高低的参照物。水平高的程序员都会看重数据结构和算法的作用,水平越高,就越能理解算法的重要性。算法不仅仅是运算工具,它更是程序的灵魂。在现实项目开发过程中,很多实际问题需要精心设计的算法才能有效解决。

算法是计算机处理信息的基础,因为计算机程序本质上是一个算法,告诉计算机确切的步骤来执行一个指定的任务,如计算职工的薪水或打印学生的成绩单。通常,当算法在处理信息时,数据会从输入设备读取,写入输出设备,也可能保存起来供以后使用。

著名计算机科学家沃思提出了下面的公式。

数据结构+算法=程序

实际上,一个程序应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言来表示。因此,可以用下面的公式表示。

程序=算法+数据结构+程序设计方法+语言和环境

上述公式中的4个方面是一种程序设计语言所应具备的知识。在这4个方面中,算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。其中,算法是用来解决“做什么”和“怎么做”的问题。实际上程序中的操作语句就是算法的体现,所以说,不了解算法就谈不上程序设计。数据是操作对象,对操作的描述即是操作步骤,操作的目的是对数据进行加工处理以得到期望的结果。举个通俗点的例子,厨师做菜肴,需要有菜谱。菜谱上一般应包括:①配料(数据)、②操作步骤(算法)。这样,面对同样的原料可以加工出不同风味的菜肴。