C语言教程02:算法的概念
算法(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。计算机算法 是用计算机求解一个具体问题或执行特定任务的一组有序的操作步骤(或指令),是构成计算机 程序的核心部分。
瑞士计算机科学家沃思(Nikiklaus Wirth)曾提出一个公式“程序=数据结构+算法”,并因此成为1984年图灵奖得主。 最新这个公式被更新为:“程序=算法+数据结构+程序设计方法+语言工具和环境”,其中,数据结构主要是数据的类型和数据的组织形式,是对程序中数据的描述;算法则是 对程序中操作的描述,也就是操作步骤。
一个程序应该包括两方面的工作内容:一是对数据进行合理的组织,即在程序中要指定 数据的类型和数据的组织形式,即数据结构(Data structure);二是设计解决问题的算法,即操作步骤。
算法的特性
1 有穷性 任何算法都应该在执行有穷步骤之后结束。
2 确定性 算法的每一步骤必须有确切的定义,不能具有二义性。算法中每一步的语义 都应该清晰明了,明确指出应该执行什么操作,如何执行操作。
3 可行性 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。 根据算法编写出来的程序应具有较高的时空效率,执行时间短,不占用过多内存。
4 有零个或多个输入 算法可以有零个或多个输入,用来刻画运算对象的初始情况。
5 有零个或多个输出 一个或多个输出:算法必须具有一个或多个执行结果的输出,用来反映对输入数据 加工后的结果。没有输出的算法是毫无意义的,是一个无效算法。
算法的表示
算法表示的常见方式有以下几种:
1 自然语言表示:易理解和交流,但易产生二义性。
2 伪代码表示:伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。
3 程序流程图:用图形符号和文字说明表示数据处理的过程和步骤。
4 N-S 流程图:也称方框图,适于结构化程序设计的算法描述工具。 传统的程序流程图由一些特定意义的图形、流程线及简要的文字说明构成,它能明确地表 示算法的运行过程,是描述算法的良好工具。
版权声明:本文为原创文章,版权归donstudio所有,欢迎分享本文,转载请保留出处!