当前位置:首页 > 科学研究 > 电子编程 > 正文内容

C语言教程02:算法的概念

RonWang2年前 (2023-05-17)电子编程1022

算法(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。计算机算法 是用计算机求解一个具体问题或执行特定任务的一组有序的操作步骤(或指令),是构成计算机 程序的核心部分。

瑞士计算机科学家沃思(Nikiklaus Wirth)曾提出一个公式“程序=数据结构+算法”,并因此成为1984年图灵奖得主。  最新这个公式被更新为:“程序=算法+数据结构+程序设计方法+语言工具和环境”,其中,数据结构主要是数据的类型和数据的组织形式,是对程序中数据的描述;算法则是 对程序中操作的描述,也就是操作步骤。

一个程序应该包括两方面的工作内容:一是对数据进行合理的组织,即在程序中要指定 数据的类型和数据的组织形式,即数据结构(Data structure);二是设计解决问题的算法,即操作步骤。

算法的特性

1 有穷性 任何算法都应该在执行有穷步骤之后结束。

2 确定性 算法的每一步骤必须有确切的定义,不能具有二义性。算法中每一步的语义 都应该清晰明了,明确指出应该执行什么操作,如何执行操作。

3 可行性 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。 根据算法编写出来的程序应具有较高的时空效率,执行时间短,不占用过多内存。

4 有零个或多个输入 算法可以有零个或多个输入,用来刻画运算对象的初始情况。

5 有零个或多个输出 一个或多个输出:算法必须具有一个或多个执行结果的输出,用来反映对输入数据 加工后的结果。没有输出的算法是毫无意义的,是一个无效算法。

算法的表示

算法表示的常见方式有以下几种:

1 自然语言表示:易理解和交流,但易产生二义性。

2 伪代码表示:伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。

3 程序流程图:用图形符号和文字说明表示数据处理的过程和步骤。

4  N-S 流程图:也称方框图,适于结构化程序设计的算法描述工具。 传统的程序流程图由一些特定意义的图形、流程线及简要的文字说明构成,它能明确地表 示算法的运行过程,是描述算法的良好工具。

版权声明:本文为原创文章,版权归donstudio所有,欢迎分享本文,转载请保留出处!

本文链接:http://parentscn.com/?id=226

相关文章

Guide to UL Wire Specifications & Standards

Guide to UL Wire Specifications & Standards

Who is UL ?The UL enterprise is a global private safety company headquartered in Northbrook, Illinoi...

Arduino Programming Basic - Input and Outpput

Arduino Programming Basic - Input and Outpput

The pins on the Arduino can be configured as either inputs or outputs. This document explains the fu...

Arduino UNO Mp3音乐播放代码

Arduino UNO Mp3音乐播放代码

Arduino UNO Mp3音乐播放代码今天我们将使用Arduino UNO 和SD卡制作音乐播放器。这个播放器不需要添加多余的模块,只需要SD读卡器和Arduino UNO开发板就可以播放音频文件...

Arduino Project 011 - Piezo Sounder Alarm

Arduino Project 011 - Piezo Sounder Alarm

Arduino project - sounder and sensors : Include project 11 Piezo Sounder Alarm ,Project piezo sounde...

如何选择合适剥线钳工具?初级电子制作与维修之工具选择

如何选择合适剥线钳工具?初级电子制作与维修之工具选择

剥线钳是弱电工程师、内线电工、电动机修理、仪器仪表电工及电子制作爱好者常用的工具之一,用来供操作者剥除电线头部的表面绝缘层。剥线钳可以使得电线被切断的绝缘皮与电线分开,可以在不损坏内部金属线层的情况下...

编程学习|儿童编程网站资源

编程学习|儿童编程网站资源

HELLO RUBY儿童编程大冒险儿童编程思维启蒙读本3-6岁:《Hello Ruby儿童编程大冒险》English Version 英文网站  http://www.hellor...