使用一维数组保存二维矩阵

1 概述

  这里假定矩阵 ( a i j ) n × m (a_{ij})_{n \times m} (aij)n×m下标从0开始,即 0 ⩽ i ⩽ n − 1 , 0 ⩽ j ⩽ m − 1 0 \leqslant i \leqslant n-1,0 \leqslant j \leqslant m-1 0in1,0jm1

2 用二维数组保存矩阵

  使用 a [ i ] [ j ] a[i][j] a[i][j]保存 a i j a_{ij} aij,即可建立一一对应的关系。

3 用一维数组保存矩阵

  对矩阵 ( a i j ) n × m (a_{ij})_{n \times m} (aij)n×m从左至右,从上至下编号,每个元素 a i j a_{ij} aij的编号 i n d e x = i ∗ m + j index=i*m+j index=im+j
  对于每个编号 i n d e x index index,令 i = i n d e x / m , j = i n d e x % m i=index/m,j=index \% m i=index/m,j=index%m,使得有唯一的元素 a i j a_{ij} aij与之对应。
  综上, a i j a_{ij} aij i n d e x index index之间存在双向映射,即可用一维数组 a [ i n d ] a[ind] a[ind]保存元素 a i j a_{ij} aij

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值