![[Pasted image 20250712141812.png]]

数组的储存

【定义】

数组: 由 n(≥1) 个相同类型的数据元素构成的有限序列, 是线性表的推广。
一旦被定义, 维数和长度就不可再改变, 一般对其只有元素的存取和修改操作。

一维数组

Arr[a0,…,an−1] Arr[a_{0},\dots,a_{n-1}] Arr[a0,,an1]
计算 ai 的位置: pos(ai) = pos(a0) + i *L (ai 前面有 i 个元素)

二维数组

——可看作元素是一维数组的一维数组。 假设为 n*m 大小。
行优先
![[Pasted image 20250712143114.png]]

列优先
![[Pasted image 20250712143127.png]]

特殊矩阵的压缩

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

对称矩阵

aij = aji
![[Pasted image 20250712143241.png]]

若从 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 下三角区全为同一常量 => 会浪费一半的存储空间。
![[Pasted image 20250712162901.png]]

![[Pasted image 20250712162909.png]]

下三角矩阵元素 aij 和数组下标的关系
n(n+1)/2, i < j 上三角区
i(i-1)/2+j-1, i ≥ j 下三角区和主对角线
![[Pasted image 20250713031706.png]]

上三角矩阵元素 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
![[Pasted image 20250713032036.png]]

除第1行和第i行外,每行都有三个元素,
第i行有j-i+2个元素,
故aij为第(i-2)*3+2+j-i+2=2i+j-2个元素

三对角矩阵的顺序存储
![[Pasted image 20250713032112.png]]

三对角矩阵元素 aij 和数组下标的关系
k = 2i + j -3

稀疏矩阵储存方式

顺序储存(三元组表示法&伪地址表示法)
链式存储(邻接表表示法&十字链表表示法)
![[Pasted image 20250713032510.png]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91009.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91009.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/91009.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何把Arduino IDE中ESP32程序bin文件通过乐鑫flsah_download_tool工具软件下载到ESP32中

目录前言获取Arduino IDE中ESP32程序bin文件flsah_download_tool工具软件下载程序bin文件到ESP32中总结前言 Arduino IDE丰富的驱动库给ESP32的开发带来了很多便利&#xff0c;当我们下载程序的时候&#xff0c;直选选择好ESP32开发板型号和端口号即可下载程序到开发板中&…

2025XYD Summer Camp 7.11 模考

T1TTT 组询问&#xff0c;每组询问给定 n,mn,mn,m&#xff0c;求 (nm)−1⋅∑i1n∑j1mlcm⁡(i,j) (nm)^{-1}\cdot\sum_{i1}^n\sum_{j1}^m\operatorname{lcm}(i,j) (nm)−1⋅i1∑n​j1∑m​lcm(i,j) 对 109710^971097 取模。 T≤20000T\le 20000T≤20000&#xff0c;n,m≤107n,m…

uniapp 微信小程序点击开始倒计时

一、示例 当点击按钮时就开始倒计时代码 <template><view class"sq_box"><button class"button" click"topay">按钮</button><u-modal v-model"modalShow" :show-cancel-button"true" :content&…

【网络】Linux 内核优化实战 - net.netfilter.nf_conntrack_tcp_timeout_established

目录一、核心概念1. **TCP 连接状态跟踪**2. **参数作用**二、默认值与典型场景1. **默认值**2. **典型场景**三、如何调整该参数1. **查看当前值**2. **临时修改&#xff08;重启后失效&#xff09;**3. **永久修改**四、相关参数与配合优化1. **其他 TCP 状态超时参数**2. **…

鸿蒙app 开发中的Record<string,string>的用法和含义

Record<string, string> 在鸿蒙 App 开发中的用法在 TypeScript 中&#xff0c;Record<string, string> 是一个映射类型&#xff08;Mapped Type&#xff09;&#xff0c;用于描述一个对象的结构。在鸿蒙 App 开发中&#xff0c;它常用于定义接口、组件属性或函数参…

Webpack、Vite配置技巧与CI/CD流程搭建全解析

Webpack、Vite配置技巧与CI/CD流程搭建全解析 在现代前端开发中&#xff0c;构建工具配置和自动化部署流程是提升开发效率和项目质量的关键环节。本文将深入探讨Webpack和Vite这两大构建工具的核心配置技巧&#xff0c;并详细介绍CI/CD流程的搭建方法。 一、Webpack核心配置技巧…

输入npm install后发生了什么

一、准备阶段&#xff1a;配置与环境检查读取配置优先级npm install 首先加载多层级的配置&#xff08;优先级从高到低&#xff09;4&#xff1a;项目级 .npmrc用户级 .npmrc&#xff08;如 ~/.npmrc&#xff09;全局 npmrcnpm 内置默认配置可通过 npm config ls -l 查看所有配…

SpringBoot集成Redis、SpringCache

1 Redis介绍 1.1 Redis作为缓存 由于Redis的存取效率非常高,在开发实践中,通常会将一些数据从关系型数据库(例如MySQL)中读取出来,并写入到Redis中,后续当需要访问相关数据时,将优先从Redis中读取所需的数据,以此,可以提高数据的读取效率,并且对一定程度的保护关系型…

静态路由综合配置实验报告

一、实验拓扑二、实验需求1.除了R5的环回地址固定5.5.5.0/24&#xff0c;其他网段基于192.168.1.0/24进行合理划分&#xff1b;2.R1-R4每个路由器存在两个环回接口&#xff0c;模拟PC&#xff0c;地址也在192.168.1.0/24网络内&#xff1b;3.R1-R4不能直接编写到达5.5.5.0/24的…

【一起来学AI大模型】PyTorch DataLoader 实战指南

DataLoader 是 PyTorch 中处理数据的核心组件&#xff0c;它提供了高效的数据加载、批处理和并行处理功能。下面是一个全面的 DataLoader 实战指南&#xff0c;包含代码示例和最佳实践。基础用法&#xff1a;简单数据加载import torch from torch.utils.data import Dataset, D…

SpringBoot单元测试类拿不到bean报空指针异常

原代码package com.atguigu.gulimall.product;import com.aliyun.oss.OSSClient; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; impo…

持续集成 简介环境搭建

1. 持续集成简介 1.1 持续集成的作用 随着互联网的蓬勃发展,软件生命周期模型也经历了几个比较大的阶段,从最初的瀑布模型,到 V 模型,再到现在的敏捷或者 devops,不论哪个阶段,项目从立项到交付几乎都离不开以下几个过程,开发、构建、测试和发布,而且一直都在致力于又…

关于 java:11. 项目结构、Maven、Gradle 构建系统

一、Java 项目目录结构标准1.1 Java 项目标准目录结构总览标准 Java 项目目录结构&#xff08;以 Maven / Gradle 通用结构为基础&#xff09;&#xff1a;project-root/ ├── src/ │ ├── main/ │ │ ├── java/ # 主业务逻辑代码&#xff08;核心…

大数据的安全挑战与应对

在大数据时代&#xff0c;大数据安全问题已成为开发者最为关注的核心议题之一。至少五年来&#xff0c;大数据已融入各类企业的运营体系&#xff0c;而采用先进数据分析解决方案的组织数量仍在持续增长。本文将明确当前市场中最关键的大数据安全问题与威胁&#xff0c;概述企业…

PostgreSQL ERROR: out of shared memory处理方式

系统允许的总锁数 SELECT (SELECT setting::int FROM pg_settings WHERE name max_locks_per_transaction) * (SELECT setting::int FROM pg_settings WHERE name max_connections) (SELECT setting::int FROM pg_settings WHERE name max_prepared_transactions);当锁大于…

Django 模型(Model)

1. 模型简介 ORM 简介 MVC 框架中一个重要的部分就是 ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。即直接面向对象操作数据,无需考虑 sql 语句。 ORM 是“对象-关系-映射”的简称,主要任务是:…

深入解析Hadoop RPC:技术细节与推广应用

Hadoop RPC框架概述在分布式系统的核心架构中&#xff0c;远程过程调用&#xff08;RPC&#xff09;机制如同神经网络般连接着各个计算节点。Hadoop作为大数据处理的基石&#xff0c;其自主研发的RPC框架不仅支撑着内部组件的协同运作&#xff0c;更以独特的工程哲学诠释了分布…

为什么玩游戏用UDP,看网页用TCP?

故事场景&#xff1a;两种不同的远程沟通方式假设你需要和远方的朋友沟通一件重要的事情。方式一&#xff1a;TCP — 打一个重要的电话打电话是一种非常严谨、可靠的沟通方式。• 1. 建立连接 (三次握手):• 你拿起电话&#xff0c;拨号&#xff08;SYN&#xff09;。• 朋友那…

【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔(二)

High-Fidelity Texture Transfer Using Multi-Scale Depth-Aware Diffusion 这篇文章可以从一个带有纹理的几何物体出发&#xff0c;将其身上的纹理自动提取并映射到任意的几何拓扑结构上&#xff08;见下图红线左侧&#xff09;&#xff1b;或者从一个白模几何对象出发&#x…