iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言数组学习之特殊矩阵的压缩存储
  • 453
分享到

C语言数组学习之特殊矩阵的压缩存储

2024-04-02 19:04:59 453人浏览 独家记忆
摘要

目录1.数组的定义数组与线性表的关系2.数组的存储结构习题13.对称矩阵概念存储方法选择习题1习题24.三角矩阵概念存储方法选择5.三对角矩阵概念存储方法选择习题16.稀疏矩阵概念存

首先最开始我们先回忆一下数组的概念

1.数组的定义

数组是由n个相同类型的数据元素构成的有限序列,每个数据元素称为一个数组元素,每个元素在n个线性关系中的序号称为该元素的下标,下标的取值范围称为数组的维界。

数组与线性表的关系

数组是线性表的推广

  • 一维数组可以视为一个线性表
  • 二维数组可视为其元素为定长线性表的线性表
  • 数组一旦被定义,其维数和维界就不再改变,因此除了数组结构的初始化和销毁外,数组只能执行存储元素和修改元素的操作

在了解完数组的定义后,我们再了解一下数组在内存中是如何存储的

2.数组的存储结构

一个数组的所有元素在内存中占用一段连续的存储空间

一维数组的存储如下:

对于多维数组,比如二维数组来说,有两种映射方法:按行优先 和 按列优先

按行优先:先行后列,先存储行号较小的元素,行号相等先存储列号较小的元素

按列优先:先列后行,先存储列号较小的元素,列号相等先存储行号较小的元素

习题1

在了解数组在内存中的存储方式后,我们可以开始用数组来存储矩阵中的元素了!

3.对称矩阵

概念

对于一个n阶方阵A中的任意一个元素ai,j都有ai,j=aj,i,则称为对称矩阵

对于一个对称矩阵我们可以将其中的元素划分为3个部分:上三角区,主对角线和下三角区

存储方法选择

土办法

用一个n*n的数组去完完整整地将整个矩阵中的元素给存储下来。

压缩存储法

我们发现对于n阶对称矩阵,上三角区的所有元素与下三角区的所有元素相同,若采用上述的土办法,将会浪费几乎一半的空间,因此我们将其中重复相同的元素只存放一次。

存储主对角线和下三角区

可见,采取行优先的原则将主对角线和下三角区的元素存入数组B当中

那么在数组B当中,ai,j对应B[?]呢?我们可以自己通过计算得出一个映射公式

习题1

习题2

4.三角矩阵

概念

存储方法选择

土办法

用一个n*n的数组去完完整整地将整个矩阵中的元素给存储下来。

压缩存储法

与对称矩阵不同之处在于,存储完下三角区和主对角线上的元素之后,紧接着存储对角线上方的常量一次。

按行存储主对角线和下三角区+常量C

按行存储主对角线和上三角区+常量C

5.三对角矩阵

概念

对角矩阵称为带状矩阵;在三对角矩阵中,所有非零元素都集中在以主对角线为中心的3条对角线的区域,其他区域的元素都为零

存储方法选择

压缩存储法

习题1

6.稀疏矩阵

概念

矩阵中非零元素的个数t,相对矩阵元素的个数s来说非常少,即s>>t的矩阵称为稀疏矩阵。

存储方法选择

三元组存储

十字链表

 

到此这篇关于C语言数组学习之特殊矩阵的压缩存储的文章就介绍到这了,更多相关C语言 矩阵的压缩存储内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言数组学习之特殊矩阵的压缩存储

本文链接: https://www.lsjlt.com/news/159388.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言数组学习之特殊矩阵的压缩存储
    目录1.数组的定义数组与线性表的关系2.数组的存储结构习题13.对称矩阵概念存储方法选择习题1习题24.三角矩阵概念存储方法选择5.三对角矩阵概念存储方法选择习题16.稀疏矩阵概念存...
    99+
    2022-11-12
  • C语言数组中如何压缩存储特殊矩阵
    小编给大家分享一下C语言数组中如何压缩存储特殊矩阵,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.数组的定义数组是由n个相同类型的数据元素构成的有限序列,每个数...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作