c语言算法

本文介绍了算法的概念,包括与程序和数据结构的关系,区分数值运算和非数值运算,阐述算法的五大特性。此外,详细探讨了算法的表达方式,如自然语言、流程图和N-S流程图的应用及其优缺点。
摘要由CSDN通过智能技术生成

目录

1、程序

2、什么是算法

3、算法的特性

4、怎么表达算法

4.1、自然语言

4.2、流程图

4.3、N-S流程图


1、程序

    算法与程序设计以及数据结构密切相关,是解决一个问题的完整的步骤描述,是解决问题的策略、规则、方法。算法的描述形式有很多种,像传统的流程图、结构化流程图等。

   数据结构:对数据的描述。程序中要制定用到哪些数据,以及数据的类型和数据的组织形式。

   算法:对操作过程的描述,计算机进行操作的步骤。

   数据是操作的对象,操作的目的是对数据进行加工处理。

程序=数据结构+算法

 2、什么是算法

    计算机算法分为两大类:数值运算算法和非数值运算算法。数值运算的目的是求数值解,例如求方程的根、求一个函数的定积分等,都属于数值运算范围。而非数值运算涉及的面十分广阔,最常见的是用于事务管理领域,例如一批职工按姓名排序、图书检索、人事管理的等。目前计算机在非数值运算方面的应用远超于数值运算方面的应用。

   曾经问一个朋友说,什么是算法,他说算法嘛,就是一套方法,需要的时候拿过来,套用就可以,我更感觉他说的更像小学数学,在我看来,为了解决一个问题而所使用的方法和步骤,就可以称为"算法"

3、算法的特性

    (1)有穷性:一个算法必须在执行有限次后结束并且每一步都可在有限的时间完成,不能无限地执行下去

    (2)确定性:算法的每一个步骤都必须是确切定义的,对于每一个过程不能有二义性

    (3)有效性:算法的每一步骤都应当有效的执行,也就是说算法是可行的

例如这段程序中:

这段代码:

这段代码是无效的语句,因为0是不可以做分母的。

    (4)有零个或多个输入:输入是在执行算法时需要从外界取得必要的算法所需要的初始量等一些信息

例如:

上面代码就说有多个输入

    (5)有一个或多个输出:输出就是算法最终所求的结果。编写程序的目的就是要得到一个结果,如果一个程序运行下来没有任何结果,那么这个程序本身也就失去了意义(算法的输出不一定就是计算机的打印或者屏幕输出)。

4、怎么表达算法

     对于一些问题的求解步骤,需要一种表达方式,即算法描述,他人可以通过这些算法描述来了解算法设计师的思路。表示一个算法,可以用不同的方法,常用的有自然语言、流程图、N-S流程图等,下面将对算法的描述进一步介绍。

4.1、自然语言

     用自然语言表示通俗易懂,但文章冗长,容易出现歧义,自然语言的表示往往不打严谨,要根据上下文来分析其中的正确含义。

4.2、流程图

     流程图是一种传统的算法表示法,它用一些图框来代表各种不同性质的操作,用流程线来指示算法的执行方向。由于它直观形象,易于理解,所以应用广泛,特别是在语言发展早期阶段,只有通过流程图才能简明的表明算法。

     起止框:程序的开始或结束

     菱形框:是对一个给定的条件进行判断,根据给定的条件判断是否成立决定如何执行其后的操作,它有一个入口,两个出口

    输入输出框:通过键盘把内容输入给框里的内容,或将框里的内容输出在屏幕显示,达到输入或输出的效果

    处理框:正常处理运算数据

    流程线:用流程线来指示算法的执行方向

    连接点:用于将画在不同地方的连接线连接起来。可以避免流程图交叉或过长,使流程图更清晰

    注释框:只是对流程图中某些框的操作作必要的补充说明

例:

一个流程图应包含以下几部分:

   (1):表示相应操作的框

   (2):带箭头的流程图

   (3):框内外必要的文字说明

这种流程图占有篇幅较多,尤其是算法比较复杂时,画流程图即费时又不方便。

4.3、N-S流程图

    由一个基本的框组成一个大的框。这种流程图又称为N-S结构化流程图        

    N-S流程图用以下的流程图符号

   (1):顺序结构

   (2):选择结构

   (3):循环结构:

当型循环:

直到型循环:

      一个结构化的算法是由一些基本结构顺序组成的;在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构范围之内(如循环中流程的跳转);一个非结构化的算法可以用一个等价的结构化算法代替,其功能更不变。如果一个算法不能分解为若干个基本结构,则它必然不是一个结构化的算法

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值