Project1

标题: 什么是数组 [打印本页]

作者: 鑫晴    时间: 2017-7-29 15:56
标题: 什么是数组

Array: 数组,阵列

一维数组
概念:只有宽,或只有高。
简单讲,他的面积只有一行,或者一列。

某个数值的坐标: (1, y) or ( x, 1)

这是一个一维数组:
宽度是10,高度只有1
0
12456789


这是一个一维数组:
宽度是1,高度是6
0
1
2
3
4
5

是不是想到一个东西—— Excel表格。
用表格来举例,一维数组应该是长这个样子的:

温馨提示:
灰色背景部分不算表格内容。
只是为了解释方便而向外扩展。


ABCD
1



或者

A
1
2
3
4

白色格子里面,相当于一个抽屉。
你应该去过超市,用过储物柜吧~
你可以在格子里面,放进一些东西。

比如:

玩家A玩家B玩家C玩家D
分数100988561

这个数组在程序上就是这样写:
Socre[ 100, 98, 85, 61 ];

在人类语言的世界里,我们数数是从1开始的数。
表格第1个格子的数值是100
表格第2个格子的数值是98
表格第3个格子的数值是85
表格第4个格子的数值是61

但是,在计算机的世界里,数数是从0开始数的。
数组的第0个位置,是100
数组的第1个位置,是98
数组的第2个位置,是85
数组的第3个位置,是61

请问,这个表格 / 数组的大小是多少?
当然是4个啦..你数数看  [0, 1, 2, 3]

请问,这个数组的第2个位置的值是多少?
Sorce[2] = ?

是98吗?错!
正确答案应该是85

欢迎来到“从零开始的数组世界生活”




二维数组
概念:不仅有宽还有高。
Width, Height

上面的只有一列或者一行的表格,升级啦!
现在的样子才是真正的表格。

某个数值的坐标: (x, y)

这是一个二维数组:
宽度是6,高度是6
A
BCDEF
GHIJKL
MNOPQR
STUVWX
YZ0123
456789


这是一个二维数组:
宽度是7,高度是6


请问,在这个日历的二维数组中,位置(4, 5)的值是多少?

用JavaScript来演示的话:


如果把日历看成6行,7列的话。横着看,一共有6行

第0行是 [26, 27, 28, 29, 30,   1,   2],
第1行是 [  3,   4,   5,   6,   7,   8,   9],
第2行是 [10, 11, 12, 13, 14, 15, 16],
第3行是 [17, 18, 19, 20, 21, 22, 23],
第4行是 [24, 25, 26, 27, 28, 29, 30],
第5行是 [31,   1,   2,   3,  4,    5,   6]

找到了第4行,就竖着看列。一共有7列

第4行的第0列是 24
第4行的第1列是 25
第4行的第2列是 26
第4行的第3列是 27
第4行的第4列是 28
第4行的第5列是 29
第4行的第6列是 30

所以,这个数组
date[4][5] = 29


下一个问题,
请告诉我18在数组的哪个位置。

date[3][1] = 18



三维数组
概念:不仅有宽还有高,还多了深度
Width, Height, Depth

某个数值的坐标: (x, y, z)


用Excel来举例。
如果说,刚刚的日历是在Excel其中一张Sheet。

你问 Sheet 是什么?
看下面.....



你所看到的一张Sheet,是一个二维数组。
你可以轻松的通过坐标来找到一个位置。

比如,
横着看,在表格中是以字母的顺序来标记。
数着看,在表格中是以数字的顺序来标记。

举例,A1,C10,  F36, AT35等。

但在计算机的世界中,
是以(x, y)来标记坐标的。

横着看,是X轴,越往右,X越大。
竖着看,是Y轴,越往下,Y越大。

当然,也得看原点在哪,也就是以哪个地方为出发点。

相信在学校中,你们数学老师教过你们坐标系的概念 :)



X和Y知道了,现在,又多了一个Z轴是什么概念呢?
坐标变成了 (X, Y, Z)

刚刚拿EXCEL来举例,所以Z就是所在的Sheet表。

比如第一张表格的第A行第4列。
对应的坐标就是(A, 4, Sheet 1)


再换个例子,柜子
现在有A, B, C,三个柜子。
每个柜子有3行4列,共12个格子。





如果你把东西存在了A柜的第7号格子。
也就是第1个柜子,第3列第2行的第3个格子。

在计算机世界中,如果原点在左上角。
那它所在位置就是
X = 2 ,
Y = 1,  
Z = 0

记住,从零开始数数。



作者: yang1zhi    时间: 2017-7-29 16:14
有列的吗。
不都是行吗。
【【】【】】也是同一行啊。
只是这样看的话,理解成列也可以拉。
不是还有【【【【】【】】】【【【】【】】】】
每个分支都可以再分支。树状图
作者:  眠     时间: 2017-7-29 17:08
说起来,我听说多维数组是很消耗空间的。
我自己做游戏的时候,倒是用了很多3维数组,其中很多是没有装满的。

比如RM里面就没有用多维数组,而是另外定义了一个结构去存放地图数据。
作者: 0nepeop1e    时间: 2017-7-29 19:14
数组就是一种组,里面全是数,因此称为数组
作者: shitake    时间: 2017-7-29 22:34
数组什么的不就是个阿贝尔群么(逃
作者: 余音·魔眼    时间: 2017-7-29 22:47
自我感觉…数组什么的就是参数的组成吧…
作者: taroxd    时间: 2017-7-30 09:22
当一棵树不能满足你的时候,我们就需要一个树族
作者: yagami    时间: 2017-7-30 11:30
lua 是从1开始的




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1