1
算法与数据结构  C语言版
1.3.3 1.3 算  法
1.3 算 法

数据结构与算法之间存在本质联系,在某一类型数据结构上,总要涉及其上施加的运算,只有通过对定义运算的研究,才能清楚理解数据结构的定义和作用;在涉及运算时,总要联系到该算法处理的对象和结果的数据。

在本门课程中,我们将遇到大量的算法问题,因为算法联系着数据在计算过程中的组织方式,为了描述实现某种操作,常常需要设计算法,因而,算法是研究数据结构的重要途径。

现在我们来写一个小程序,求1+2+3+…+100结果的程序,大多数人马上会写出下面的C语言代码:

这是最简单的计算机程序之一,它就是一种算法,问题在于这个算法是不是真的好呢?是不是高效呢?让我们看下面一个例子,高斯求1+2+3+…+100方法:

共100个101,所以sum=1 050,用程序来实现如下:

这个方法要比刚刚的方法快得多,不仅可以用于1加到100,就是加到1 000、10 000,也是瞬间之事。如果用刚才的程序,计算机要循环1 000次、10 000次的加法运算。可见人脑比计算机快得多,似乎成为现实。