23王道——特殊矩阵压缩存储

对称矩阵 \ 三角矩阵

如果数组下标是以0开始,那么就计算所求aij的前面有多少个元素就可以,下标就是多少,相当于一维数组
比如,数组中第11个元素,前面有十个元素,那么下标就是10
如果是下标1开始,那么就找他是第几个元素,他的下标就是多少

对称矩阵,存储下三角,以行存储
aij,前面有i-1行,第i行前面有j-1个
第一行有1个,第2行有2个…第i-1行有i-1个,累加求和i(i-1)/2
再加上j-1个,即为所求
>i(i-1)/2+j-1

如果下标是以1开始,那么就计算aij是第几个元素下标就是多少
同理,前面有i-1行,第i行他是第j个
累加求和,i(i-1)/2+j

同样对称矩阵,存储下三角,以列存储,下标0开始
aij,前面有j-1列,第j列前面有j-i个(我是写个矩阵,就找到j-i的规律了)
第1列有n个,第2列有n-1个…第j-1列有n-j+2个
累加,(j-1)(2n-j+2)/2+j-i为所求

如果是下标以1开始,那么就在后面再加个1就ok!

三角矩阵,就在后面再加一个存储常数的空间即可,下标为n(n+1)/2

三对角矩阵

研究元素:| i - j | ≤ 1
aij,行存储,下标0开始
前面每行有三个元素,只有第一行为3-1个
所以i-1行共有3(i-1)-1个元素
在第i行,aij前面有j-i+1个
k=2i+j-3

课后思考

课后题错了一个
是因为对称矩阵,存储上三角矩阵的时候,他给出的是具体数字,我就没用公式去推,导致m6,6是在对角线上的,是所在行的第一个元素,这一点给忽略了,导致了错误
这点值得在以后的做题中注意
相反,如果他给出的是字母,让你去推导相应的关系公式,估计大家都会注意到这个事情,所以还是不能大意

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值