数据结构-----------------数组

本文深入探讨了数组的存储方式,包括一维和二维数组的行优先和列优先存储,以及特殊矩阵如对称矩阵、三角矩阵和对角矩阵的压缩存储策略。详细介绍了不同存储方式下的位置计算公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组

是由类型相同的数据元素构成的有序集合

数组的顺序存储

二维数组a[m][n]以一维方式存储时按位置查询

首元为a[0][0]时      以行存储  LOC(i,j)=LOC(0,0)+(n*i+j)L

                              以列存储  LOC(i,j)=LOC(0,0)+(m*j+i)L

首元为a[1][1]时      以行存储 LOC(i,j)=LOC(1,1)+(n*(i-1)+(j-1))L

                              以行存储 LOC(i,j)=LOC(1,1)+(n*(j-1)+(i-1))L        

特殊矩阵的压缩存储   

          矩阵从[0][0]开始   一维存储从[0]开始   ps:一旦前提条件更改公式就可能不适用

   1)对称矩阵

          转换为一维的存储空间为   n(n-1)/2

          行序存储

                    k=i(i+1)/2+j    (i>=j)

                    k=j(j+1)/2+i    (j>i)

   2)三角矩阵

          转换为一维的存储空间为   n(n-1)/2+1

          行序存储  存上三角

                    k=i(2*n+1-i)/2+j-i   (i>=j)

                    k=n(n+1)/2   (j>i)

          行序存储  存下三角

                    k=i(i+1)/2+j    (i>=j)

                    k=n(n+1)/2     (j>i)

3)对角矩阵

  转换为一维的存储空间为   3*n-2+1

          行序存储  k=3*i-1+j-(i-1)=2*i-j      

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值