二维数组是复杂网络的底层存储工具,邻接矩阵用其行列表示节点、元素值表示连接关系;支持无权/有向/带权图,具o(1)查询、缓存友好、可扩容与稀疏优化等优势,并支撑度、路径、聚类、中心性等网络分析。

二维数组本身不是网络模型,而是实现网络结构的底层存储工具。真正构成“复杂网络”的,是顶点间的关系逻辑;二维数组(尤其是邻接矩阵)恰好能清晰、高效地表达这种关系。
邻接矩阵:用二维数组存网络连接
邻接矩阵是最直接的映射方式——行和列代表节点编号,矩阵元素值表示节点间是否存在边或边的权重。
- 无权无向图:matrix[i][j] = 1 表示节点 i 和 j 相连,0 表示不相连;因无向,矩阵对称
- 带权有向图:matrix[i][j] = w(如延迟、距离、强度)表示从 i 到 j 的边权重;w 可为正数、浮点数,甚至用 Double.NaN 或 -1 表示无连接
- 内存与访问优势:连续存储带来良好缓存局部性,O(1) 时间即可判断任意两节点是否连通
支持动态演化:扩容与稀疏优化策略
真实网络常随时间增长(如新增用户、设备接入),纯静态二维数组需主动管理容量。
- 按需扩容:当节点数接近当前矩阵维度时,新建更大二维数组(如从 n×n 扩至 2n×2n),复制旧数据,保留原索引映射
- 稀疏场景替代方案:若网络边数远少于节点数平方(即稀疏图),可结合二维数组 + 哈希映射(如用 HashMap
存每行非零列),避免大量 0 占用空间 - 分块存储:对超大规模网络(如百万级节点),可将邻接矩阵划分为子块,用二维数组列表 List
管理,提升加载与计算局部性
支撑核心网络分析:从矩阵出发算指标
许多复杂网络特性可直接由邻接矩阵运算导出,无需额外建图对象。
- 度计算:无向图中第 i 行(或列)元素之和即为节点 i 的度;有向图中行和为出度,列和为入度
- 路径长度:matrix² 的 (i,j) 元素表示从 i 到 j 的长度为 2 的路径数;通过矩阵幂可估算短路径分布
- 聚类系数近似:对节点 i,统计其邻居间在 matrix 中对应子矩阵的边密度,公式可直接编码为嵌套循环
- 特征向量中心性:可通过幂迭代法在二维数组上原地计算主特征向量,用于识别关键节点
对接实际建模需求:不止是存,更是可演化的结构
二维数组作为载体,需配合业务逻辑才能成为“模型”。例如模拟小世界网络演化:
- 初始化:构建环形邻接矩阵(每个节点连左右 k 个邻居)
- 添加新节点:扩展矩阵行列,按偏好连接规则设置新行/列的非零值
- 层次性约束:限制某类节点只能与特定行号范围内的列建立连接,用 if 判断 + 赋值实现
- 实时查询:任意时刻调用 matrix[i][j] 即得当前连接状态,适合高频读取场景











