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

news2025/1/15 12:58:35

矩阵的压缩存储

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.链式存储——十字链表法

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】新手入门(8):什么是迭代?迭代的作用是什么?

【Python】新手入门(8):什么是迭代?迭代有什么应用? 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】…

C++读取NC数据的结果与真实数值不一致的解决方法

本文介绍基于C 语言的netCDF库读取.nc格式的栅格文件时,代码读取到的数据与栅格文件的实际数据不一致的解决方法。 最近,由于需要读取ERA5气象数据,因此使用C 语言中的netCDF库读取.nc格式文件。其中,偶然发现在Visual Studio的代…

卷积神经网络(CNN)算法详解

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 引言 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(…

Android Termux系统安装openssh实现公网使用SFTP远程访问

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP(SSH File Transfer Protocol)是一种基于SSH(Secure Shell)安全协议的文件传输协议。与FTP协议相比,SFTP使用了…

外包干了5天,技术退步明显。。。。。

在湖南的一个安静角落,我,一个普通的大专生,开始了我的软件测试之旅。四年的外包生涯,让我在舒适区里逐渐失去了锐气,技术停滞不前,仿佛被时间遗忘。然而,生活的转机总是在不经意间降临。 与女…

【系统学习】2-Java进阶知识总结-3-集合-1-补充【泛型、树、数据结构】

文章目录 泛型什么是泛型?常见的泛型标识符泛型类泛型方法泛型接口通配符 树树的基本概念什么是二叉树?二叉树--普通二叉树二叉树--二叉查找树定义规则优缺点 二叉树--平衡二叉树定义规则旋转机制 二叉树--红黑树定义规则红黑规则 常见数据结构总体特点结…

node的安装与介绍

安装 下载地址 node官网首页就会有两个安装选择,会根据当前电脑的系统自动显示对应的安装包,一个长期维护版(LTS),一个是尝鲜版,记住选择LTS版本 安装指定版本下载截图 安装过程截图(非常简单&#xff…

STM32CubeMX学习笔记14 ---SPI总线

1. 简介 1.1 SPI总线介绍 SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola(摩托罗拉)首先在其MC68HCXX系列处理器上定义的。 SPI,是一种高速的,全双工,同步的通信总线,并且在…

掌握Linux之巅:RHCE认证快速攻略

在数字化时代,Linux系统已经成为企业级应用的重要支柱。RHCE(Red Hat Certified Engineer)认证,作为Linux领域的权威认证,不仅代表了专业技术的认可,更是职业发展的有力武器。本文将为你揭秘如何快速掌握Li…

@Autoweird和@Resourse的区别 java定义Bean的方式

Autoweird private Apple apple; Autoweird首先是根据类型来找 就是这个Apple 如果找到多个 会在根据名称就是这个apple来找,如果再找不到,就报错 Resourse相反 举例说明: 我们使用Autoweird ZhouyuService zhouyuService Resourse特别之…

C语言题目练习

目录 前言 1、转置矩阵 1.1 题目 描述 输入描述: 输出描述: 1.2解题 分析: 程序: 2、KiKi判断上三角矩阵 2.1 题目 描述 输入描述: 输出描述: 2.2 解题 分析: 程序: 3、…

什么是工业交换机?

如今,工业交换机在能源、环保、交通、智慧城市监控等各个行业都发挥着至关重要的作用,其需求也日益增长。本文将全面介绍工业交换机,帮助你进一步加深了解。 什么是工业交换机? 工业交换机,又称工业以太网交换机&…

基于微信小程序的电影院订票选座系统的设计与实现(程序+数据库+)

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

轻薄蓝牙工牌室内人员定位应用

在现代化企业管理的背景下,轻薄蓝牙工牌人员定位应用逐渐崭露头角,成为提升企业效率和安全性的重要工具。本文将从轻薄蓝牙工牌的定义、特点、应用场景以及未来发展趋势等方面,对其进行全面深入的探讨。 一、轻薄蓝牙工牌的定义与特点 轻薄…

Vue:纯前端实现文件拖拽上传

先看一下拖拽相关的事件:dragover、dragenter drop和dragleave 。 dragover事件:当被拖动的元素在一个可放置目标上方时,该事件会被触发。 通常,我们会使用event.preventDefault()方法来取消浏览器默认的拖放行为,以便…

赛事通知丨2024年(第12届)“泰迪杯”挑战赛即将开始

2024年(第12届)“泰迪杯”数据挖掘挑战赛将于3月8日开放报名。“泰迪杯”数据挖掘挑战赛始创于2013年,迄今已经连续举办了12年。累计参赛高校千余所,累计参赛人数逾10万人,全国各省份均有参加。大赛的开展始终秉持推动…

局域网管理工具

每个组织的业务运营方法都是独一无二的,其网络基础设施也是如此,由于随着超融合基础设施等新计算技术的发展,局域网变得越来越复杂,因此局域网管理也应该如此,组织需要量身定制的局域网管理解决方案,这些解…

QT6.6 android开发环境搭建

一.目标 本文目的为实现在QT6.6下搭建android开发环境,可以实现QT6.6开发的QT程序(widget及qml工程)部署到android设备中。 二.环境安装 1.QT6.6环境安装 (1)在线安装器下载: https://download.qt.io/a…

手动更新服务器node新版本

1.安装nodejs下载到本地 2.下载后放到服务器上的指定目录中。例如/usr/local/src/node 3.执行tar -xvf node-v20.10.0-linux-x64.tar.xz解压 4.执行一下命令配置软连接 -f是如果文件存在就覆盖 # 将node源文件映射到usr/bin下的node文件 ln -fs /usr/local/src/node/node-…

10G Ethernet Subsystem 基于K7芯片的UDP通讯

此文章只用于教程开发笔记,不做过多的废话介绍。 IP核的建立 此选项不进行共享时钟逻辑。优点接口少好操作,缺点只可以建立一个IP核。(我有一篇文章介绍了如何进行多个核互联)传送门:FPGA光纤Aurora_8B_10B_fpga auro…