马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
<P align=left> 数据的运算通过算法(Algorithm)描述,讨论算法是数据结构课程的重要内容之一。</P>
<P align=left><STRONG>1.算法 </STRONG></P>
<P align=left> 非形式地说,算法是任意一个良定义的计算过程。它以一个或多个值作为输入,并产生一个或多个值作为输出。</P>
<P align=left>(1)一个算法可以被认为是用来解决一个计算问题的工具。 </P>
<P align=left>(2)一个算法是一系列将输入转换为输出的计算步骤。 </P>
<P align=left>【例3.1】有这样一个排序问题:将一个数字序列排序为非降序。 </P>
<P align=left>该问题的形式定义由满足下述关系的输入输出序列构成: </P>
<P align=left>输入:数字序列〈a 1 ,a 2 ,…,a n 〉。 </P>
<P align=left>输出:输出序列的一个枚举〈a 1 ',a 2 ',…,a n '〉使得a 1 '≤a 2 '≤…≤a 3 ' </P>
<P align=left>对于一个输入实例〈31,41,59,26,41,58〉,排序算法应返回输出序列〈26,31,41,41,58,59〉。 </P>
<P align=left><BR>(1)输入实例 </P>
<P align=left>输入实例:一个问题的输入实例是满足问题陈述中所给出的限制、为计算该问题的解所需要的所有输入构成的。 </P>
<P align=left><BR>(2)正确的算法和不正确的算法 </P>
<P align=left>若一个算法对于每个输入实例均能终止并给出正确的结果,则称该算法是正确的。正确的算法解决了给定的计算问题。</P>
<P align=left>一个不正确的算法是指对某些输入实例不终止,或者虽然终止但给出的结果不是所渴望得到的答案,一般只考虑正确的算法。 <BR><BR><STRONG>2.算法的描述 </STRONG></P>
<P align=left> 一个算法可以用自然语言、计算机程序语言或其它语言来说明,惟一的要求是该说明必须精确地描述计算过程。 </P>
<P align=left> 一般而言,描述算法最合适的语言是介于自然语言和程序语言之间的伪语言。它的控制结构往往类似于Pascal、C等程序语言,但其中可使</P>
<P align=left>用任何表达能力强的方法使算法表达更加清晰和简洁,而不至于陷入具体的程序语言的某些细节。 </P>
<P align=left> 从易于上机验证算法和提高实际程序设计能力考虑,采用C语言描述算法。 </P>
<P align=left>【例3.2】定义一个输出错误信息后退出程序运行的错误处理函数,该函数将在后续的许多程序中用来简化处理代码。 </P>
<P align=left><BR># include <stdlib.h> //其中有exit的说明 </P>
<P align=left># include <stdio.h> //其中有标准错误stderr的说明 </P>
<P align=left>void Error(char*message) </P>
<P align=left>{ </P>
<P align=left>fprintf(stderr,"Error: % s \ n ", message) ; //输出错误信息 </P>
<P align=left>exit(1) ; //终止程序,返回1给操作系统 </P> |