数据结构之数组矩阵存储

目录

一、数组存储

[1. 一维数组](#1. 一维数组)

[2. 二维数组](#2. 二维数组)

二、特殊矩阵存储

[1. 对称矩阵](#1. 对称矩阵)

[2. 三角矩阵](#2. 三角矩阵)

[3. 三对角矩阵](#3. 三对角矩阵)

三、总结


一、数组存储

1. 一维数组

2. 二维数组

二维数组按列优先存储的下标对应关系(A _m*_n)

二、特殊矩阵存储

1. 对称矩阵

上、下三角区的元素相同,存储元素,会浪费一半的空间,因此只需存放 (n + 1) * n / 2 个元素

2. 三角矩阵

  • 计算A[i, j]存放在一维数组的位置

技巧:直接令i, j = n 代入选项,检验是否与(n + 1) * n / 2相同,同样需要注意数组下标起始位置

3. 三对角矩阵

矩阵第一行和最后一行只有两个元素,其余行有3个元素;计算矩阵和数组下标对应关系时,按照特点算即可,一般都是计算具体元素的下标对应。计算可以从先算前(i - 1)行的元素数 + 相差元素个数(从左往右 ); 也可以直接算出第i行最后一个元素,然后减去相差元素个数(从右往左)。


三、总结

数组在编程中是十分常用的一种数据结构,以后遇到的许多算法都会有它的身影,比如KMP算法定义next数组、其随机存取的特点可以用来排序、动态规划等问题。上述内容如果有错误的地方,希望大佬们可以指正。我一直在学习的路上,您的帮助使我收获更大!觉得对您有帮助的话,还请点赞支持!我也会不断更新文章!

相关推荐
甄心爱学习6 分钟前
【python】获取所有长度为 k 的二进制字符串
python·算法
iAkuya19 分钟前
(leetcode)力扣100 76数据流的中位数(堆)
算法·leetcode·职场和发展
键盘鼓手苏苏41 分钟前
Flutter for OpenHarmony: Flutter 三方库 ntp 精准同步鸿蒙设备系统时间(分布式协同授时利器)
android·分布式·算法·flutter·华为·中间件·harmonyos
董董灿是个攻城狮1 小时前
AI 视觉连载5:传统 CV 之均值滤波
算法
多恩Stone1 小时前
【3D-AICG 系列-11】Trellis 2 的 Shape VAE 训练流程梳理
人工智能·pytorch·算法·3d·aigc
lintax2 小时前
计算pi值-积分法
python·算法·计算π·积分法
你的冰西瓜2 小时前
C++ STL算法——排序和相关操作
开发语言·c++·算法·stl
今儿敲了吗2 小时前
29| 高考志愿
c++·笔记·学习·算法
识君啊3 小时前
Java 二叉树从入门到精通-遍历与递归详解
java·算法·leetcode·二叉树·深度优先·广度优先
浅念-3 小时前
C++ 模板进阶
开发语言·数据结构·c++·经验分享·笔记·学习·模版