数据的运算通过算法(Algorithm)描述讨论算法是数据结构课程的重要内容之一
算法
非形式地说算法是任意一个良定义的计算过程它以一个或多个值作为输入并产生一个或多个值作为输出
()一个算法可以被认为是用来解决一个计算问题的工具
()一个算法是一系列将输入转换为输出的计算步骤
【例】有这样一个排序问题将一个数字序列排序为非降序
该问题的形式定义由满足下述关系的输入输出序列构成
输入数字序列〈a a …a n 〉
输出输出序列的一个枚举〈a a …a n 〉使得a ≤a ≤…≤a
对于一个输入实例〈〉排序算法应返回输出序列〈〉
()输入实例
输入实例一个问题的输入实例是满足问题陈述中所给出的限制为计算该问题的解所需要的所有输入构成的
()正确的算法和不正确的算法
若一个算法对于每个输入实例均能终止并给出正确的结果则称该算法是正确的正确的算法解决了给定的计算问题
一个不正确的算法是指对某些输入实例不终止或者虽然终止但给出的结果不是所渴望得到的答案一般只考虑正确的算法
算法的描述
一个算法可以用自然语言计算机程序语言或其它语言来说明惟一的要求是该说明必须精确地描述计算过程
一般而言描述算法最合适的语言是介于自然语言和程序语言之间的伪语言它的控制结构往往类似于PascalC等程序语言但其中可使
用任何表达能力强的方法使算法表达更加清晰和简洁而不至于陷入具体的程序语言的某些细节
从易于上机验证算法和提高实际程序设计能力考虑采用C语言描述算法
【例】定义一个输出错误信息后退出程序运行的错误处理函数该函数将在后续的许多程序中用来简化处理代码
# include //其中有exit的说明
# include //其中有标准错误stderr的说明
void Error(char*message)
{
fprintf(stderrError: % s \ n message) ; //输出错误信息
exit() ; //终止程序返回给操作系统
}