算法解读:s变量和数组

算法是解决问题并获得结果的过程。在这个处理过程中,问题以数据的形式输入,结果同样以数据的形式输出,在算法的处理过程中,也需要各种临时的数据。

数据是什么?

数据是多种不同信息的表现。

以料理中的食谱为例,下面的材料即为算法——食谱的数据:

  猪肉120g, 洋葱1/2个, 胡萝卜1/2个, 土豆2个, 糖一大勺, 料酒2大勺……

计算机程序中的算法也是如此,为了解决问题需要使用各种数据:

1. 求最大公约数的算法:

  a. 求最大公约数的两个整数
  b. 求出的最大公约数(整数)

2. 一组数据的排序算法:

  a. 要排序的一组数据
  b. 数据的个数
  c. 排好序的一组结果数据

在一个算法的思考过程中,我们需要很多信息,所有这些信息都是数据,都会协助问题解决的流程。因此,所有的算法是”处理“和”数据“的相互结合。

数据类型的理解

数据代表各种信息,被视为信息的数据有很多类型,根据不同种类分为不同的组,如食谱数据的分组:

  配料:猪肉、牛肉、洋葱、白菜
  调味品:酱油、料酒、糖、盐
  量:100g, 200ml, 1勺
  时间:时、分、秒
  火候:大火、中火、小火

计算机编程的算法中需要处理的数据也分为不同的组,这样的分组就称为数据类型:

  整数型:0, 1, 100, -100
  浮点型:1.1, 3.1415926, - 2.98
  字符型:A, B, x, 我, 你
  字符串型:ABC, CHINA, 算法
  布尔型:true, false

值的理解

数据是各种信息的表现形式,而数据的具体表现就是值。

在烹饪的食谱中, 猪肉、酱油、胡椒等是在做料理时使用的配料和调味料,也可以说是表示”物“的”值“。而100g, 1小勺,200ml等式表示分量,时间等”数“的”值“。

在算法中,我们用数值、文字等描述”值“, 如整数型或浮点型的值:0, 1, 1.1, 3.14。字符型和字符串的值,一般用单引号或双引号括起字符或字符串:'A', 'B', "CHINA".

括起来表示是为了与一般的数值区别开,比如: 10 和 "10",这两个分别是整数型值和字符串的值。

变量的理解

在算法中,当我们对一些数据进行操作时,需要保存这些数据的空间,这些空间称为”变量“。比如,我们做文件整理的时候,需要把所有文件分类到不同的盒子里进行管理,在这里,文件就是数据,存放文件的盒子就是所谓的变量。也就是说,变量起到了盒子的作用,我们可以移动各种数据并存入盒子里。

在这里需要注意一点,在整理文件时,我们可以把多个种类的文件放入一个盒子里,但变量,一般情况下,只能存入一种类型的数据。同时,在已经存入数据的变量中输入另一个值时,原先存入的数据将消失。比如声明一个变量: int i; 此时,盒子已经搬出来了,但盒子里没有任何数据,接着我们设定: i = 2; 于是数据2被存入了盒子 i 里,我们可以继续设定 i 的值: i = 3; 此时,3存入了盒子里,而数据2已经消失了。

值得一提的是,在我们声明一个变量 int i;这个步骤中,i 的状态是不放入任何数据。

变量的区分

算法中,我们经常使用多个变量,为了区分不同的变量并方便认识变量的用途,我们需要使用变量名来为装数据的箱子取名。

变量名要唯一。

赋值语句

变量的值的代入是通过变量指定的赋值语句完成的,赋值语句的右边也可以是使用运算符号的公式,如:i = 10; j = 3 + 5;

赋值语句右边可能是个变量名,此时的变量名代表存储在此变量中的值,如 j = i + 5; 这里的变量名 i 表示存储在变量 i 中的值,如果 i = 3,那么j = i + 5就相当于 j = 3 + 5;

数组

算法中,数组用来保存大量数据。例如:存储全校学生的测试结果(分数), 或者所有注册会员的名字等。

数组的原则:同一数组中的所有数据必须是同类型的值。

数组的理解:它是把很多变量线性排列的结果,即,数组是变量的箱子"无缝隙"地排列在一条直线上。

与变量有变量名作为标记一样,数组也有数组名,数组名是指定某一个目标数组而给定的唯一名称。

构成数组的”箱子“的个数称为数组元素数,可以用编号进行管理,且编号默认从0开始。

二维数组

数组中存储大量的关联数据。其中,在一条直线上排列的,像储物柜的数组称为一维数组,另外,也有把变量像纵向和横向无缝隙排列的矩形数组,它称为二维数组。甚至还有向水平、垂直、深度三个方向无缝隙排列的立方体数组,称为三维数组……

二维数组被广泛地使用在行和列的大量数据的管理中,如:围棋游戏中黑白子的管理

如果每一层的房间数排列一样,那么,由N层组成的宾馆房间构造也可以认为是二维数组。

总之,二维数组必须是由变量的”箱子“无缝隙地排列成长方形的结果:

字符串

在算法中,字符和字符串的处理是比较特殊的。

对于字符,计算机内部是通过数字(或字符编码)表示的。例如:字符'A'为65, 字符 'B' 为66...

字符串是上述字符编码对应的字符连续的表现,因此,字符串是字符无缝隙线性排列的信息,或者可以定义为:字符串是每个元素存储字符的字符型数组,例如:字符串"ABC",可以看成是存储字符'A', 'B', 'C'的数组。

posted @ 2015-05-25 14:38  Ribbon  阅读(458)  评论(0编辑  收藏  举报