当前位置: 首页 > news >正文

24考研数据结构-数组和特殊矩阵

目录

  • 数据结构:数组与特殊矩阵
    • 数组
      • 数组的特点
      • 数组的用途
    • 特殊矩阵
      • 对角矩阵
      • 上三角矩阵和下三角矩阵
      • 稀疏矩阵
      • 特殊矩阵的用途
    • 结论
  • 3.4 数组和特殊矩阵
    • 3.4.1数组的存储结构
    • 3.4.2普通矩阵的存储
    • 3.4.3特殊矩阵的存储
      • 1. 对称矩阵(方阵)
      • 2. 三角矩阵(方阵)
      • 3. 三对角矩阵(方阵)带状
      • 4. 稀疏矩阵

数据结构:数组与特殊矩阵

数据结构是计算机科学中的基础概念,它涉及组织和存储数据的方式以及对数据的操作。在数据结构中,数组和特殊矩阵是两种常见的数据组织形式。本文将对数组和特殊矩阵进行介绍,并讨论它们在实际应用中的特点和用途。

数组

数组是一种线性数据结构,它由相同类型的元素按照一定顺序组成。数组的特点是在内存中连续存储元素,可以通过索引快速访问其中的元素。数组的索引通常从0开始,表示数组中元素的位置。例如,一个长度为n的数组A,其元素可以表示为A[0]、A[1]、A[2]、…、A[n-1]。

数组的特点

  • 快速访问:由于数组中元素在内存中连续存储,可以通过索引直接访问数组中的元素,具有快速访问的特点。
  • 固定大小:数组在创建时需要指定大小,且大小固定,无法在运行时动态改变大小。
  • 存储效率高:由于元素在内存中连续存储,使得数组的存储效率较高。

数组的用途

数组在实际应用中有着广泛的用途,例如:

  • 数据存储:用于存储一系列数据元素,如整数、字符、浮点数等。
  • 数据统计:用于统计一组数据中的最大值、最小值、平均值等。
  • 排序算法:在各种排序算法中,数组是常用的数据结构。

数组的使用非常灵活,它在算法和数据处理领域有着重要的地位。

特殊矩阵

特殊矩阵是一种二维数据结构,它具有某种特殊的规律或特点,使得在特定情况下能够对其进行更高效的存储和操作。特殊矩阵通常有以下几种类型:

对角矩阵

对角矩阵是一种除了主对角线以外的所有元素都为零的矩阵。例如,一个n阶对角矩阵D可以表示为:

d[i][j] = 0, i ≠ j
d[i][j] ≠ 0, i = j

对角矩阵在存储和运算时,可以只保存主对角线上的元素,大大节省了存储空间和运算时间。

上三角矩阵和下三角矩阵

上三角矩阵和下三角矩阵是一种在主对角线上方或下方的所有元素都为零的矩阵。上三角矩阵的下方元素都为零,下三角矩阵的上方元素都为零。这些矩阵在存储和运算时,也可以只保存非零元素,节省存储空间和运算时间。

稀疏矩阵

稀疏矩阵是一种大部分元素都为零的矩阵。在实际应用中,很多矩阵都是稀疏矩阵,例如图像处理中的像素矩阵。对于稀疏矩阵,存储所有元素将会浪费大量的存储空间。因此,可以采用压缩存储方法,只存储非零元素及其位置,从而节省存储空间。

特殊矩阵的用途

特殊矩阵在很多领域都有着广泛的应用,尤其在数值计算和科学工程中。它们可以优化矩阵的存储和运算效率,提高算法的执行速度。

结论

数组和特殊矩阵是两种常见的数据结构,在计算机科学和工程中都有着广泛的应用。数组是一种简单而高效的数据组织形式,用于存储一系列相同类型的元素。特殊矩阵是一种具有特殊规律的二维数据结构,能够优化矩阵的存储和运算效率。

在实际应用中,我们可以根据具体问题的特点选择合适的数据结构,以提高算法的效率和性能。同时,对于特殊矩阵,我们可以采用压缩存储方法来节省存储空间,使得数据处理更加高效和便捷。通过合理选择和使用数据结构,我们可以优化算法的执行效率,提高计算机程序的性能。

3.4 数组和特殊矩阵

矩阵定义: 一个由m*n个元素排成的m行(横向)n列(纵向)的表。
矩阵的常规存储:将矩阵描述为一个二维数组。

3.4.1数组的存储结构

  1. 一维数组
    Elemtype a[10];

各数组元素大小相同,物理上连续存放;

起始地址:LOC

数组下标:默认从0开始!

数组元素 a[i] 的存放地址 = LOC + i × sizeof(ElemType)

在这里插入图片描述

  1. 二维数组

Elemtype b[2][4]; //2行4列的二维数组

行优先/列优先存储优点:实现随机存储

在这里插入图片描述

起始地址:LOC

M行N列的二维数组 b[M][N] 中,b[i][j]的存储地址:

行优先存储: LOC + (i×N + j) × sizeof(ElemType)
列优先存储:LOC + (j×M + i) × sizeof(ElemType)

3.4.2普通矩阵的存储

在这里插入图片描述

二维数组存储:

  • 描述矩阵元素时,行、列号通常从1开始;
  • 描述数组时,通常下标从 0 开始;

3.4.3特殊矩阵的存储

特殊矩阵——压缩存储空间(只存有用的数据

矩阵的压缩存储:为多个相同的非零元素只分配一个存储空间;对零元素不分配空间。

1. 对称矩阵(方阵)

在这里插入图片描述
列优先:

  • n >1
    n+ (n-1)+ ······+(i-j)+1

  • n = 1
    i-j+1

在这里插入图片描述

2. 三角矩阵(方阵)

在这里插入图片描述

n + (n-1) +······(n-i+1) +(j-i)

在这里插入图片描述

3. 三对角矩阵(方阵)带状

在这里插入图片描述
在这里插入图片描述

4. 稀疏矩阵

在这里插入图片描述
设在mn的矩阵中有t个非零元素,令c=t/(mn),当c<=0.05时称为稀疏矩阵。
压缩存储原则:存各非零元的值、行列位置和矩阵的行列数。

在这里插入图片描述

相关文章:

24考研数据结构-数组和特殊矩阵

目录 数据结构&#xff1a;数组与特殊矩阵数组数组的特点数组的用途 特殊矩阵对角矩阵上三角矩阵和下三角矩阵稀疏矩阵特殊矩阵的用途 结论 3.4 数组和特殊矩阵3.4.1数组的存储结构3.4.2普通矩阵的存储3.4.3特殊矩阵的存储1. 对称矩阵(方阵)2. 三角矩阵(方阵)3. 三对角矩阵(方阵…...

服务器后台运行程序

代码运行 要让代码在服务器后台运行&#xff0c;有多种方法。在 Linux 系统中&#xff0c;最常见的有以下几种方式&#xff1a; **1. 使用 & 符号&#xff1a;** 在命令后面添加 & 符号可以让程序在后台运行。例如&#xff1a; bash python myscript.py &但是…...

大数据课程D7——hadoop的YARN

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 了解YARN的概念和结构&#xff1b; ⚪ 掌握YARN的资源调度流程&#xff1b; ⚪ 了解Hadoop支持的资源调度器&#xff1a;FIFO、Capacity、Fair&#xff1b; ⚪ 掌握YA…...

Rust vs Go:常用语法对比(十三)

题图来自 Go vs. Rust: The Ultimate Performance Battle 241. Yield priority to other threads Explicitly decrease the priority of the current process, so that other execution threads have a better chance to execute now. Then resume normal execution and call f…...

【【51单片机DA转换模块】】

爆改直流电机&#xff0c;DA转换器 main.c #include <REGX52.H> #include "Delay.h" #include "Timer0.h"sbit DAP2^1;unsigned char Counter,Compare; //计数值和比较值&#xff0c;用于输出PWM unsigned char i;void main() {Timer0_Init();whil…...

[SQL挖掘机] - 字符串函数 - substring

介绍: substring函数是在mysql中用于提取字符串的一种函数。它接受一个字符串作为输入&#xff0c;并返回从该字符串中指定位置开始的一部分子串。substring函数可以用于获取字符串中的特定字符或子串&#xff0c;以便进行进一步的处理或分析。 用法: 下面是substring函数的…...

第一百一十六天学习记录:C++提高:STL-string(黑马教学视频)

string基本概念 string是C风格的字符串&#xff0c;而string本质上是一个类 string和char区别 1、char是一个指针 2、string是一个类&#xff0c;类内部封装了char*&#xff0c;管理这个字符串&#xff0c;是一个char型的容器。 特点&#xff1a; string类内部封装了很多成员方…...

Meta-Transformer 多模态学习的统一框架

Meta-Transformer是一个用于多模态学习的新框架&#xff0c;用来处理和关联来自多种模态的信息&#xff0c;如自然语言、图像、点云、音频、视频、时间序列和表格数据&#xff0c;虽然各种数据之间存在固有的差距&#xff0c;但是Meta-Transformer利用冻结编码器从共享标记空间…...

tinkerCAD案例:24.Tinkercad 中的自定义字体

tinkerCAD案例&#xff1a;24.Tinkercad 中的自定义字体 原文 Tinkercad Projects Tinkercad has a fun shape in the Shape Generators section that allows you to upload your own font in SVG format and use it in your designs. I’ve used it for a variety of desi…...

list与流迭代器stream_iterator

运行代码&#xff1a; //list与流迭代器 #include"std_lib_facilities.h" //声明Item类 struct Item {string name;int iid;double value;Item():name(" "),iid(0),value(0.0){}Item(string ss,int ii,double vv):name(ss),iid(ii),value(vv){}friend ist…...

九耶:冯·诺伊曼体系

冯诺伊曼体系&#xff08;Von Neumann architecture&#xff09;是一种计算机体系结构&#xff0c;它由匈牙利数学家冯诺伊曼于1945年提出。冯诺伊曼体系是现代计算机体系结构的基础&#xff0c;几乎所有的通用计算机都采用了这种体系结构。 冯诺伊曼体系的核心思想是将计算机硬…...

探索UCI心脏病数据:利用R语言和h2o深度学习构建预测模型

一、引言 随着机器学习模型在实际应用中的广泛应用&#xff0c;人们对于模型的解释性和可理解性日益关注。可解释性机器学习是指能够清晰、透明地解释机器学习模型决策过程的一种方法和技术。在许多领域中&#xff0c;如医疗诊断、金融风险评估和自动驾驶等&#xff0c;解释模型…...

基于 moleculer 微服务架构的智能低代码PaaS 平台源码 可视化开发

低代码开发平台源码 低代码管理系统PaaS 平台 无需代码或通过少量代码就可以快速生成应用程序的开发平台。 本套低代码管理后台可以支持多种企业应用场景&#xff0c;包括但不限于CRM、ERP、OA、BI、IoT、大数据等。无论是传统企业还是新兴企业&#xff0c;都可以使用管理后台…...

xrdp登录显示白屏且红色叉

如上图所示&#xff0c;xrdp登录出现了红色叉加白屏&#xff0c;这是因为不正常关闭导致&#xff0c;解决方法其实挺简单的 #进入/usr/tmp cd /usr/tmp #删除对应用户的kdecache-** 文件&#xff08;我这里使用的是kde桌面&#xff09;&#xff0c;例如删除ywj用户对应的文件 …...

Docker安装 Mysql 8.x 版本

文章目录 Docker安装 Mysql 8.0.22Mysql 创建账号并授权Mysql 数据迁移同版本数据迁移跨版本数据迁移 Mysql 5.x 版本与 Mysql 8.x版本是两个大版本&#xff0c;这里演示安装Mysql 8.x版本 Docker安装 Mysql 8.0.22 # 下载mysql $ docker pull mysql 默认安装最新…...

【数理知识】刚体 rigid body 及刚体的运动

文章目录 1 刚体2 刚体一般运动1 平移运动2 旋转运动 Ref 1 刚体 刚体是指在运动中和受力作用后&#xff0c;形状和大小不变&#xff0c;而且内部各点的相对位置不变的物体。绝对刚体实际上是不存在的&#xff0c;只是一种理想模型&#xff0c;因为任何物体在受力作用后&#…...

【UE5 多人联机教程】03-创建游戏

效果 步骤 打开“UMG_MainMenu”&#xff0c;增加创建房间按钮的点击事件 添加如下节点 其中&#xff0c;“FUNL Fast Create Widget”是插件自带的函数节点&#xff0c;内容如下&#xff1a; “创建会话”节点指游戏成功创建一个会话后&#xff0c;游戏的其他实例即可发现&am…...

【时间序列预测 】M4

【时间序列预测 】M4 论文题目&#xff1a;The M4 Competition: 100,000 time series and 61 forecasting methods 中文题目&#xff1a; 论文链接&#xff1a; 论文代码&#xff1a; 论文团队&#xff1a; 发表时间&#xff1a; DOI: 引用&#xff1a; 引用数&#xff1a; 摘要…...

SpringCloud微服务实战——搭建企业级开发框架(五十三):微信小程序授权登录增加多租户可配置界面

GitEgg框架集成weixin-java-miniapp工具包以实现微信小程序相关接口调用功能&#xff0c;weixin-java-miniapp底层支持多租户扩展。每个小程序都有唯一的appid&#xff0c;weixin-java-miniapp的多租户实现并不是以租户标识TenantId来区分的&#xff0c;而是在接口调用时&#…...

Stability AI推出Stable Diffusion XL 1.0,文本到图像模型

Stability AI宣布推出Stable Diffusion XL 1.0&#xff0c;这是一个文本到图像的模型&#xff0c;该公司将其描述为迄今为止“最先进的”版本。 Stability AI表示&#xff0c;SDXL 1.0能生成更加鲜明准确的色彩&#xff0c;在对比度、光线和阴影方面做了增强&#xff0c;可生成…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...