当前位置:K88软件开发文章中心编程语言C/C++C/C++01 → 文章内容

程序的算法

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2019-1-3 0:07:49

:2011-05-02 06:50:21

我们在解决一个特定问题时,除了要设计合理的数据结构外,还要设计性能较优的算法。

算法是指为解决特定问题而采取的确定且有限的步骤。一个算法应当具有以下几个特性:

(1)有穷性:一个算法包含的操作步骤应该是有限的。也就是说在执行若干操作步骤后,算法将结束,而且每一步都在合理的时间内完成。

(2)确定性。算法中每一条指令必须有确切的含义,不能有二义性,对于相同的输入必须得出相同的执行结果。

(3)可行性。算法中指定的操作,都可以通过已经验证过可以实现的基本运算执行有限次后实现。

(4)有零个或多个输入。在计算机上实现的算法是用来处理数据对象的,在大多数情况下这些数据对象需要通过输入来得到。

(5)有一个或多个输出。算法的目的是为了求“解”,这些“解”只有通过输出才能得到。

算法可以用各种描述方法来进行描述,最常用的是伪代码和流程图。

伪代码是一种近似于高级语言但又不受语法约束的一种语言描述方式,这在英语国家中使用起来较为方便。

流程图也是描述算法的很好的工具,一般的流程图由下面的几种图形组成:

由于这些基本图形表示的算法形象直观,简单简便。但这种流程图对于流程线没有限制,可以任意转向,在描述复杂的算法时所占篇幅较多,费时费力,不易阅读。

1973年,美国学者I.Nassi和B.Shneiderman提出了一种新的流程图形式,这种流程图完全去掉了流程线,算法的每一步都用一个矩形框来描述,把一个个矩形框按执行的次序连接起来就是一个完整的算法描述。这种流程图用两位学者名字的第一个英文字母命名,称为N-S流程图。


程序的算法