数据结构之数组矩阵存储

news/2024/9/18 12:07:49/ 标签: 数据结构, 矩阵, 算法

目录

一、数组存储

1. 一维数组

2. 二维数组

 二、特殊矩阵存储

1. 对称矩阵

2. 三角矩阵 

 3. 三对角矩阵

三、总结 


一、数组存储

1. 一维数组

2. 二维数组

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

LOC(a_i,_j) = LOC(a_0,_0) + (j * n + i) * data 

 二、特殊矩阵存储

1. 对称矩阵

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

2. 三角矩阵 

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

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

 3. 三对角矩阵

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


三、总结 

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


http://www.ppmy.cn/news/1524746.html

相关文章

MySQL--库的操作

文章目录 1.创建数据库2.创建数据库案例3.字符集和校验规则3.1默认字符集3.2默认校验规则3.3查看系统默认字符集以及校验规则3.4查看数据库支持的字符3.5查看数据库支持的字符集校验规则3.6校验规则对数据库的影响不区分大小写查询:排序结果:区分大小写查…

HTML5( HTML5 、CSS3) 第一天

HTML5 第一天 HTML5 第一天一、什么是 HTML5二、HTML5 新增标签三、多媒体音频标签四、多媒体视频标签五、新增 input 标签六、新增表单属性七、CSS3 新特性八、CSS3 属性选择器九、结构伪类选择器十、nth-child 参数详解十一、nth-child 和 nt-of-type 的区别十二、伪元素选…

苹果账号登录后端验证两种方式 python2

import time import jwt import requests import json import base64def decode_jwt(jwt_token):try:h,p,s jwt_token.split(.)except:return {},{},{},"","",""header json.loads(base64.urlsafe_b64decode(h )) # 可能需要调整填充pa…

Golang | Leetcode Golang题解之第401题二进制手表

题目&#xff1a; 题解&#xff1a; func readBinaryWatch(turnedOn int) (ans []string) {for i : 0; i < 1024; i {h, m : i>>6, i&63 // 用位运算取出高 4 位和低 6 位if h < 12 && m < 60 && bits.OnesCount(uint(i)) turnedOn {ans …

LabVIEW中EPICS客户端/服务端的测试

概念 EPICS利用基于TCP/IP的信道接入&#xff08;CA&#xff09;网络协议。信道接入协议是建立在TCP/IP之上的应用层。 EPICS是客户端/服务器架构。通道访问服务器&#xff08;CA服务器&#xff09;可以通过使用输入/输出控制器&#xff08;IOC&#xff09;充当现实世界的I/O…

MongoDB事务机制

事务机制 1.事务概念 在对数据的操作的过程中&#xff0c;涉及到一连串的操作&#xff0c;这些操作如果失败&#xff0c;会导致我们的数据部分变化了&#xff0c;部分没变化。这个过程就好比如你去吃早餐&#xff0c;你点完餐了&#xff0c;并且吃完早餐了&#xff0c;没付钱你…

如何在 Fork 的 GitHub 项目中保留自己的修改并同步上游更新?github_fork_update

如何在 Fork 的 GitHub 项目中保留自己的修改并同步上游更新&#xff1f; 在 GitHub 上 Fork 了一个项目后&#xff0c;你可能会对项目进行一些修改&#xff0c;同时原作者也在不断更新。如果想要在保留自己修改的基础上&#xff0c;同步原作者的最新更新&#xff0c;很多人会…

ASP.NET Core 入门教学二十一 分布式追踪技术

分布式追踪技术在微服务架构中非常重要&#xff0c;它可以帮助开发者理解和监控应用程序在分布式环境中的行为。ASP.NET Core 提供了对分布式追踪的原生支持&#xff0c;主要通过 OpenTelemetry 和 Application Insights 实现。 1. OpenTelemetry OpenTelemetry 是一个开源的…

【Android安全】Ubuntu 16.04安装GDB和GEF

1. 安装GDB sudo apt install gdb-multiarch 2. 安装GEF(GDB Enhanced Features) 官网地址&#xff1a;https://github.com/hugsy/gef 2.1 安装2021.10版本 但是在Ubuntu 16.04上&#xff0c;bash -c "$(curl -fsSL https://gef.blah.cat/sh)"等命令不好使&…

计算机网络 ---- 电路交换、报文交换、分组交换性能分析

目录 一、电路交换、报文交换、分组交换基本知识介绍 1.1 电路交换性能分析 1.2 报文交换的性能分析 1.3 分组交换性能分析 1.4 三种交换的比较 一、电路交换、报文交换、分组交换基本知识介绍 图1-11显示了电路交换、报文交换和分组交换的主要区别。图中的A和D分别是源…

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们…

动手学深度学习(pytorch)学习记录26-卷积神经网路(LeNet)[学习记录]

目录 LeNet模型训练 LeNet 总体来看&#xff0c;LeNet&#xff08;LeNet-5&#xff09;由两个部分组成&#xff1a; 卷积编码器&#xff1a;由两个卷积层组成; 全连接层密集块&#xff1a;由三个全连接层组成。 每个卷积块中的基本单元是一个卷积层、一个sigmoid激活函数和平均…

【网络安全】服务基础第二阶段——第五节:Linux系统管理基础----Linux常见应用服务(Apache、数据库)

在Linux系统中&#xff0c;有许多常见的应用服务&#xff0c;它们用于执行各种任务&#xff0c;如网页托管、数据库管理、文件传输等。 Apache HTTP Server&#xff1a;用于托管网站和Web应用程序的Web服务器。Nginx&#xff1a;高性能的Web服务器和反向代理服务器&#xff0c…

TimedRotatingFileHandler 修改 suffix 后 backupCount 设置失效无法自动删除文件

本文主要分析 TimedRotatingFileHandler 在实际使用中 backupCount 设置未生效的问题。源码分析显示&#xff0c;文件删除依赖于后缀 suffix 的正则匹配&#xff0c;如果自定义了 suffix 格式&#xff0c;必须同步更新 extMatch 的正则表达式&#xff08;保证正则表达式可以正常…

RK3568平台开发系列讲解(LCD篇)Framebuffer开发

🚀返回专栏总目录 文章目录 一、FrameBuffer 应用编程二、LCD 基础2.1、分辨率2.2、像素格式2.3、LCD 成像步骤2.4、LCD 屏幕时序2.4.1、行显示时序2.4.2、帧显示时序三、FrameBuffer 操作步骤四、LCD 应用编程实验沉淀、分享、成长,让自己和他人都能有所收获!😄 line di…

性能测试:Locust使用介绍(三)

配置 Locust的配置&#xff0c;可以通过三种方式进行。第一种是命令行执行选项&#xff0c;第二种是将配置写到环境变量中&#xff0c;第三种是通过配置文件进行配置。 命令行选项 locust --helpUsage: locust [options] [UserClass ...]常用选项:-h, --help 显示…

VSCode 创建Python 项目(最简单,最少步骤,无痛从pycharm迁移项目)

第一步&#xff1a;下载 下载地址&#xff1a;https://code.visualstudio.com/docs/?dvwin64user 第二步&#xff1a;配置 2.1&#xff1a;VsCode设置中文 按住键盘上的“CtrlShiftP”组合键&#xff0c;打开命令面板。 在命令面板中输入“Configure Display Language”。点击…

LSS可视化分析

1 完整 2 去掉plt.imshow(img_show) 3 去掉plt.axis(‘off’) 4 去掉plt.annotate(cams_text[img_id].replace(‘_’, ’ ), (0.01, 0.92), xycoords=‘axes fraction’)

【自然语言处理】第二章现代语言学基础

【自然语言处理】第二章现代语言学基础 文章目录 【自然语言处理】第二章现代语言学基础1. 语言学与人类的语言1.1 现代语言学的源起及学科分支概况1.2 人类语言的符号性与层级性2. 语言系统及其知识模型2.1 语音系统2.2 词汇系统2.3 句法系统2.4 语义系统2.5 语用系统3. 语言的…

1、https的全过程

目录 一、概述二、SSL过程如何获取会话秘钥1、首先认识几个概念&#xff1a;2、没有CA机构的SSL过程&#xff1a;3、没有CA机构下的安全问题4、有CA机构下的SSL过程 一、概述 https是非对称加密和对称加密的过程&#xff0c;首先建立https链接需要经过两轮握手&#xff1a; T…