猫史档案馆


【教程帖】算法入门 八、二维列表

用户:SKQASKQA查看:1 回复:3 评论:1 创建时间:2020-06-06T11:59:59


普通列表只有一维,就是从第一项到第N项。但是如果只用一维列表存储数据,算喵变得复杂(尤其是图论),我们需要用二维列表储存数据。二维的情形在生活中有广泛的应用,如EXCEL中的单元格、XY坐标系等。那么二维列表就必须由行号和列号确定位置:

center_image

以上图为例,1,1表示第一行第一列2,3表示第二行第三列

计算机储存数据一定是一维的,没有二维内存的概念。所以计算机必须要使用一个特殊方法来模拟出二维列表,使用行号和列号。那么如何把一维列表的索引值转换为行号列号呢?

center_image

center_image

仔细分析后,你就会发现:

1=(1-1)*3+1 2=(1-1)*3+2 3=(1-1)*3+3

4=(2-1)*3+1 5=(2-1)*3+2 6=(2-1)*3+3

索引值=(行号-1)*列数+列号

可得:

行号=⌈索引值/列数⌉

列号=(索引值-1)%列数+1

⌈ ⌉符号是向上取整,⌈1.3⌉=2,⌈1.8⌉=2。百分号在这里不是只百分之几的意思,是求余数的意思,例如10%3=1(10÷3=3……1)。尝试用这几个索引值计算行列号吧!


回复

上一页1 页 / 共 1下一页
四火Yiki四火Yiki

第一反应:哦呦,终于有个短一点的了

看完之后:妈诶这是啥?

点赞0


评论


四火Yiki四火Yiki

帮你顶顶

点赞0


评论


浅眠O_o浅眠O_o

厉害

点赞0


评论