您当前的位置: 首页 >  算法

仙剑情缘

暂无认证

  • 0浏览

    0关注

    333博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C语言入门之程序的灵魂(算法)及数据类型

仙剑情缘 发布时间:2019-05-13 08:00:23 ,浏览量:0

  • 算法---程序的灵魂

一个程序主要包括以下两方面的信息:

(1) 对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式

这就是数据结构(data structure)

(2) 对操作的描述。即要求计算机进行操作的步骤

也就是算法(algorithm)

  算法 + 数据结构 = 程序

广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”

对同一个问题,可以有不同的解题方法和步骤

为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法

  • 计算机算法可分为两大类别:

  数值运算算法

 非数值运算算法

 数值运算的目的是求数值解

非数值运算包括的面十分广泛,最常见的是用于事务管理领域

  • 简单的算法举例

例2.1 求1+2+3+4+5

 可以用最原始的方法进行:

步骤1:先求1+2,得到结果3。

步骤2:将步骤1得到的和3再加上3,得到结果6

步骤3:将6再加上4,得10。

步骤4:最后将10再加上5,得上15。这就是最后的结果。

  如果从1+2+…+100呢?

改进的算法:    

步骤1:定义变量sum并赋值为0。

步骤2:定义一个循环变量i并赋值为1

步骤3:判断循环变量是否小于等于5,如果条件成立,将sum与i相加并将结果赋给sum,否则运算结束,跳到步骤5 。

步骤4:循环变量自增1,跳到步骤3 。

步骤5:得到sum的总和值

  • 再次改进的算法:   

  • 算法的特性

​​​​​​一个有效算法应该具有以下特点:

(1) 有穷性。一个算法应包含有限的操作步骤,而不能是无限的。

      (2) 确定性。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。

(3) 有零个或多个输入。所谓输入是指在执行算法时需要从外界取得必要的信息。

(4) 有一个或多个输出。算法的目的是为了求解,“解” 就是输出。没有输出的算法是没有意义的。

(5) 有效性。算法中的每一个步骤都应当能有效地执行,并得到确定的结果。例如:a/b,如果

                       b=0就不能有效地执行

  • 流程图表示表示法 

  • 例如将求1×2×3×4×5的阶乘用流程图表示

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

(1) 表示相应操作的框

(2) 带箭头的流程线

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

流程线不要忘记画箭头,否则难以判定各框的执行次序

  • 三种基本结构和改进的流程图

(1) 顺序结构

(2) 选择结构

(3) 循环结构

① 当型循环结构

② 直到型循环结构

以上三种基本结构,有以下共同特点:

(1) 只有一个入口

(2) 只有一个出口

                            一个判断框有两个出口

                           一个选择结构只有一个出口

(3) 结构内的每一部分都有机会被执行到。也就是说,对每一个框来说,都应当有一条从入口到出口的路径通过它

                 (4) 结构内不存在“死循环”

  • 由三种基本结构派生出来的结构:

  • 用N-S流程图表示算法

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

例如将求5!算法用N-S图表示。

  • 用伪代码表示算法

            伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法

           用伪代码写算法并无固定的、严格的语法规则,可以用英文,也可以中英文混用

例如求5!用伪代码表示算法        

用计算机语言表示算法

     例如求5!用C语言表示

#include 
int main( )
{ 
   int i,t;
   t=1;
   i=2;
   while(i            
关注
打赏
1658017818
查看更多评论
0.0475s