【数据结构】矩阵的压缩存储

矩阵的压缩存储

5.1 普通矩阵的存储

  • 用二维数组存储

    分为行优先和列优先:

    行优先:优先存放一行的数据。

    列优先:优先存放一列的数据。

    • 注意下标是从0还是1开始的!

5.2 对称矩阵的存储

  • 对称矩阵定义

    若n阶方阵中任意一个元素 a i , j a_{i,j} ai,j都有 a i , j = a j , i a_{i,j}=a_{j,i} ai,j=aj,i

  • 压缩存储策略

    只存储上或下三角区和主对角线。

  • 例:按行优先将各元素存入一维数组

    • 数组大小应为多大?

      1 + 2 + 3 + 4... + n = ( 1 + n ) ∗ n / 2 1+2+3+4...+n=(1+n)*n/2 1+2+3+4...+n=(1+n)n/2

    • 如何把矩阵下标转化为一维数组下标?

    • 因为矩阵对称,所以可以将上三角区域元素的i和j互换,就变成和下三角区域一样了

    i ( i − 1 ) / 2 i(i-1)/2 i(i1)/2是第i行前1~i-1行的所有元素数量;

    j − 1 j-1 j1 a i , j a_{i,j} ai,j元素在第i行的前的元素数量。如图:

5.3 三角矩阵的压缩存储

  • 三角矩阵

    上三角区域或者下三角区域为一常量。

  • 存储方法

    非常量区域和对称矩阵存储方法一毛一样。

    在数组最后存储常量的值。

5.4 三对角矩阵的压缩存储

  • 三对角矩阵的定义

    ∣ i − j ∣ > 1 |i-j|>1 ij>1,有 a i , j = 0 a_{i,j}=0 ai,j=0

  • 存储方式

    只要存储值不为0的元素就好。

    • 如何将数组下标k转换为矩阵下标i,j?

5.5 稀疏矩阵的压缩存储

  • 稀疏矩阵定义

    非零元素远少于矩阵元素个数。

  • 存储方式

    1.顺序存储

    ​ 会失去随机存储的特性。

    2.链式存储——十字链表法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/436479.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Allure小白下载安装

1、下载官网地址:https://github.com/allure-framework/allure2/releases 2、下载安装包后需要解压到一个非中文名称路径下 3、配置环境变量 D:\Allure\allure-2.27.0\bin 我的电脑右键选择属性,高级系统设置,环境变量 4、CMD查看安装all…

Java | Java的输入与输出

文章目录 Java输出1、System.out.println()2、System.out.printf()3、System.out.print() Java输入1、使用Scanner类的对象获取输入(1)一般类型输入(2)字符串类型输入(3)char类型输入 2、使用System.in.rea…

挑战杯 基于深度学习的目标检测算法

文章目录 1 简介2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 1 简介 &#x1f5…

Android APP性能指标(二)

文章目录 一、响应时间1.1 数据获取1.2 响应时间指标测试点1.3 启动速度测试点1.4 响应时间测试解决方法 二、流量2.1 数据获取2.2 流量测试关注点2.3 测试标准 三、电量3.1 连接手机3.2 数据获取3.3 获取APP的UID3.3 重置电池数据收集数据3.4 电量指标测试 四、温度五、性能测…

Pyaudio的安装以及报错解决

Pyaudio是一个可以用麦克风录入声音的库,但我在安装时发现无论是在cmd中pip安装还是在Pycharm中安装,都会报一堆错误。因此写一篇我最终的解决方案,我的解决办法是采用离线安装的方式,安装pyaudio库。 一.下载离线安装包 离线安…

超详细——动态内存分配+柔性数组

☃️个人主页:fighting小泽 🌸作者简介:目前正在学习C语言和数据结构 🌼博客专栏:C语言学习 🏵️欢迎关注:评论👊🏻点赞👍🏻留言💪&am…

意外之失:不小心删除的文件如何寻回?

一、瞬间消失的珍贵记忆 在我们的日常电脑使用中,总有一些时刻让人心惊胆战——那就是不小心删除了重要的文件。或许是一个珍藏多年的照片集,或许是一个即将完成的项目文档,这些文件承载着我们的回忆、努力和成果,却在一次疏忽之…

文本溢出隐藏 显示省略号,鼠标悬浮展示 el-tooltip(TooltipIsShowMixin封装)

目录 mixins 封装使用 TooltipIsShowMixin效果展示 mixins 封装 TooltipIsShowMixin.js export const TooltipIsShowMixin {data() {return {tooltipIsShow: false}},methods: {tooltipIsDisHandler(className) {this.$nextTick(() > {const dom document.querySelector…

m4a是什么文件格式?音质是无损吗?

m4a文件格式作为一种音频文件格式,源于MPEG-4标准的制定,该标准致力于提供高效的多媒体编解码方案。通常使用AAC编码,可以提供高质量的音频,但不是无损格式。AAC是一种有损压缩格式,它能够在减小文件大小的同时保持相对…

Jenkins 部署 RuoYi

目录 1、项目介绍 2、部署若依 clone 源代码 导入数据库到 node-16 修改 RuoYi 配置文件 推送 RuoYi 项目至 Gitlab 3、配置 Jenkins 配置本地 Maven Jenkins 配置 Maven 新建 Maven 项目 编写构建后的脚本 Jenkins 构建后执行脚本 4、Jenkins 传递参数 设置项目部…

Linux:kubernetes(k8s)探针的简介(7)

相当于我们用于监控容器的一个东西,通过给我们的不同探针来判断容器内的状态情况,实现故障的一个自动恢复。 我们在上一章的yaml文件中写入了一个这个东西 那么他什么情况下重启,就是通过探针进行一个监控,加入监控某一个端口&…

element多选框select下拉框数据回显的问题value.push is not a function

文章目录 问题描述 问题描述 今天在使用Element UI el-select组件遇到了一个问题,如下图: 下拉框里的值选中了,但是文本框里没有值 这是 el-select组件代码,我这里是用了一个多选框,options的值是在后端查询的,form.we…

利用MATLAB模拟点电荷的电场分布

一、实验目的: 1.熟悉点电荷的电场分布情况; 2.学会使用Matlab绘图; 二、实验内容: 1.根据库伦定律,利用Matlab强大的绘图功能画出单个点电荷的电场分布情况,包括电力…

虚拟化之内存(Memory)

一 内存的查看方式 free -k/m/h cat /proc/meminfodmesg |grep memory free命令的实质是根据meminfo中的文件来提取信息 二 内存虚拟化 1.概念:由于物理MMU只能通过Host机的物理地址进行寻址,所以实现内存虚拟化,关键是需要将Guest机的…

⭐每天一道leetcode:58.最后一个单词的长度(简单;istringstream;遍历查看)

⭐今日份题目 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例1 输入:s "Hello World" 输出&#xff1a…

Ubuntu将c++编译成.so文件并测试

一、准备cpp和h文件 创建test.cpp 在cpp中定义相加的函数funcAdd&#xff0c;给出函数的细节代码 #include <iostream> using namespace std;int funcAdd(int x, int y) {return xy; }创建test.h 在h中声明定义的函数&#xff0c;不需要任何细节 #ifndef __TEST__ #…

Catf1agCTF-Web通关合集

本文相关的ctf平台链接&#xff1a;Catf1agCTF - 综合训练平台 WEB签到 查看源代码 flag倒叙了&#xff0c;可以使用下面这个 文本字符串倒序在线工具(ESJSON在线工具) flag&#xff1a; catf1ag{welcome_to_catf1agctf_!!!_gogogo_!!!} flag在哪呢&#xff1f; 查看源代…

1、MQ_介绍、优缺点、类型等

MQ介绍 1. MQ概述 MQ&#xff08;Message Queue&#xff09;&#xff1a;消息队列&#xff0c;是基础数据结构中FIFO&#xff08;first in first out&#xff09;的一种数据结构。一般用来解决流量削峰、应用解耦、异步处理等问题&#xff0c;实现高性能&#xff0c;高可用&a…

Error:java:JDK isn‘t specified for module “模块名称“

可能是创建模块后不小心删掉了.idea.或.idea出错 只要删除.idea&#xff0c;close project出去&#xff0c;重新进让idea自动下载