NO.4数据结构数组和矩阵|一维数组|二维数组|对称矩阵|三角矩阵|三对角矩阵|稀疏矩阵

数组的储存

【定义】

数组: 由 n(≥1) 个相同类型的数据元素构成的有限序列, 是线性表的推广。

一旦被定义, 维数和长度就不可再改变, 一般对其只有元素的存取和修改操作。

一维数组

Arra0,...,an−1 Arra_{0},\\dots,a_{n-1} Arra0,...,an−1

计算 ai 的位置: pos(ai) = pos(a0) + i *L (ai 前面有 i 个元素)

二维数组

------可看作元素是一维数组的一维数组。 假设为 n*m 大小。

行优先

列优先

特殊矩阵的压缩

------多个值相同的元素只分配一个存储空间, 对零元素不分配空间。

对称矩阵

aij = aji

若从 a1,1 开始, 则 ai,j 在一维数组中存储下标

一般存储下三角矩阵

下三角区域(含主对角线)

第一行:1个元素

第二行:2个元素

第i-1行:i-1个元素

第i行:j-1个元素

故 aij 为第i(i-1)/2+j个元素

i(i-1)/2+j-1, i >= j 下三角区和主对角线

j(j-1)/2+i-1, i < j 上三角区

三角矩阵

------上三角区 or 下三角区全为同一常量 => 会浪费一半的存储空间。

下三角矩阵元素 aij 和数组下标的关系

n(n+1)/2, i < j 上三角区

i(i-1)/2+j-1, i ≥ j 下三角区和主对角线

上三角矩阵元素 aij 和数组下标的关系

上三角区域 (包含主对角线)

第一行:n个元素

第二行:n-1个元素

第i-1行:n-i+2个元素

第i行:j-i个元素

ai;为第(n+n-i+2)(i-1)/2 + j-i+1=(i-1)(2n-i+2)/2+j-i+1个元素

n(n+1)/2, i > j 下三角区

(i-1)(2n-i+2)/2 + (j-i), i ≤ j 上三角区和主对角线

三对角矩阵

------也称带状矩阵, 对于 ai,j,当|i-j|>1 时, 有 ai,j = 0

除第1行和第i行外,每行都有三个元素,

第i行有j-i+2个元素,

故aij为第(i-2)*3+2+j-i+2=2i+j-2个元素

三对角矩阵的顺序存储

三对角矩阵元素 aij 和数组下标的关系

k = 2i + j -3

稀疏矩阵储存方式

顺序储存(三元组表示法&伪地址表示法)

链式存储(邻接表表示法&十字链表表示法)

相关推荐
江畔柳前堤5 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术5 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客5 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术5 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO6 小时前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术6 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架7 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab7 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI7 小时前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算
@syh.7 小时前
【贪心】矩阵消除游戏
算法·游戏·矩阵