【数据结构入门】一、数组

一、数组的概念

数组:一种由相同类型的数据元素组成的基本数据类型,为引用类型

二、数据的顺序

这里很奇怪,讲了一个寻址函数,就是怎样用坐标求该元素的内存地址。说实话我不知道求这个能干什么,但是感觉还挺好玩的,所以就看了看。

1.一维数组:

设有一维数组A1[b,b+1,b+2,…,b+n-1],如果每个数组元素占据s个地址单元,那么寻址函数为:
Loc(i) = Loc(b)+(i-b)xs

2.二维数组:

设有二维数组A2[r,r+1,r+2,…r+m-1][c,c+1,c+2,…c+n-1];
分两种情况:
(1)以行优先
Loc(i,j)=Loc(r,c)+[(i-r)xn+(j-c)]xs
解释一下,这里从第一行开始算起,我求的这个元素是(i,j),那么已经占了(i-r)行,每行都已经被占满了,占的数量就是n,因此xn,最后一行没占满,只占到j列,那么就是(j-c)列,最后每个元素占s个地址单元,再乘以s,加上初始的第一个元素的内存地址,就能算出当前的内存地址是多少了
(2)以列优先
跟上面的规则一样,只是这次我们从第一列开始算起,因此可得公式:
Loc(i,j)=Loc(r,c)+[(j-c)xm+(i-r)]xs
如果还没理解的,我在下面举个例子,自己算一遍就懂了:

     设二维数据a[1...10][2...8]的基地址为1024,每个元素占2个存储单元,若以行优先顺序存储,则元素a[5,3]的地址是多少?若是列优先呢?解:行优先:1024+[(5-1)X(8-2+1)+(3-2)]X2=1082列优先:1024+[(3-2)X(10-1+1)+(5-1)]X2=1052

3.三维数组:

更多维度的逻辑也都是一样的,因为目前涉及较少,所以暂时没有分析。

三、矩阵的压缩存储

(这里的矩阵指二维数组)

1.特殊矩阵

这里介绍了三种特殊矩阵,用一种新的方式把这三大矩阵压缩起来存储,省空间。我觉得这个没必要在新手期去了解,所以跳过了,在这介绍下这三种矩阵:
(1)对称矩阵:很明显,就是有一半都是相同元素,以主对角线做轴对称
(2)三角矩阵:分为上三角矩阵和下三角矩阵,三角中的元素都为常数
(3)对角矩阵:只有在以主对角线为中心的带状区域中有数,其他地方的元素都为0
【这矩阵也太特殊了点,谁正常人创建这样的数组,拿来干啥的我都不知道,是我太初级了么】

2.稀疏矩阵

我理解了一下,意思就是,一个二维数组,大部分都是0,星崩有那么两个位置有数字,就跟扫雷差不多,一百个格子里有十个雷,其他都是空。当然这个0也可以换成一个其他的常量,谁都行。这样我们就可以只表示那些有值的格子。
表示方法:
(1)三元组顺序表:

   row    col    value0        1       7 1        4       41        4       6	   

很明显什么意思,我就不解释了
(2)十字链表:

row    col   valuedown  right

看见了吧,一共有五个值,前三个很好理解,第四个down是下边的,也就是同一列下一行的元素,第五个right是右边那个,也就是下一列同行的元素。这一个链表表示一个元素,根据二维数组的坐标系把每个元素都用链表表示,就组成了一个大十字。

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

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

相关文章

HarmonyOS 5.0应用开发——NodeContainer自定义占位节点

【高心星出品】 文章目录 NodeContainer自定义占位节点案例开发步骤全部代码 NodeContainer自定义占位节点 NodeContainer是用来占位的系统组件,主要用于自定义节点以及自定义节点树的显示,支持组件的通用属性,对通用属性的处理请参考默认左…

26~31.ppt

目录 26.北京主要的景点 题目 解析 27.创新产品展示及说明会 题目​ 解析 28.《小企业会计准则》 题目​ 解析 29.学习型社会的学习理念 题目​ 解析 30.小王-产品展示信息 题目​ 解析 31.小王-办公理念-信息工作者的每一天 题目​ 解析 26.北京主要的景点…

单张照片可生成写实3D头部模型!Adobe提出FaceLift,从单一的人脸图像中重建出360度的头部模型。

FaceLift是Adobe和加州大学默塞德分校推出的单图像到3D头部模型的转换技术,能从单一的人脸图像中重建出360度的头部模型。FaceLift基于两阶段的流程实现:基于扩散的多视图生成模型从单张人脸图像生成一致的侧面和背面视图;生成的视图被输入到GS-LRM重建器中,产出详细的3D高斯表…

在Uniapp中使用阿里云OSS插件实现文件上传

在开发小程序时,文件上传是一个常见的需求。阿里云OSS(Object Storage Service)是一个强大的云存储服务,可以帮助我们高效地存储和管理文件。本文将介绍如何在Uniapp小程序中使用阿里云OSS插件实现文件上传功能。 1. 准备工作 首…

Tomcat添加到Windows系统服务中,服务名称带空格

要将Tomcat添加到Windows系统服务中,可以通过Tomcat安装目录中“\bin\service.bat”来完成,如果目录中没有service.bat,则需要使用其它方法。 打到CMD命令行窗口,通过cd命令跳转到Tomcat安装目录的“\bin\”目录,然后执…

Android Studio集成讯飞SDK过程中在配置Project的时候有感

在配置讯飞的语音识别SDK(流式版)时候,跟着写了两个Demo,一个是YuYinTestDemo01,另一个是02,demo01比较简单,实现功能图象也比较简陋,没用讯飞SDK提供的图片,也就是没用到…

DeepSeek 助力 Vue 开发:打造丝滑的进度条

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

NLP Word Embeddings

Word representation One-hot形式 在上一周介绍RNN类模型时,使用了One-hot向量来表示单词的方式。它的缺点是将每个单词视为独立的,算法很难学习到单词之间的关系。 比如下面的例子,即使语言模型已经知道orange juice是常用组合词&#xf…

CNN卷积神经网络多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址:CNN卷积神经网络多变量多步预测,光伏功率预测(Matlab完整源码和数据) 标题:CNN卷积神经网络多变量多步预测,光伏功率预测 一、引言 1.1 研究背景及意义 随着全球能源危机的加剧和环保意识的提升&#xff…

本地部署DeepSeek Nodejs版

目录 1.下载 Ollama 2.下载DeepSeek模型 3.下载 ollama.js 1.下载 Ollama https://ollama.com/ 下载之后点击安装,等待安装成功后,打开cmd窗口,输入以下指令: ollama -v 如果显示了版本号,则代表已经下载成功了。…

【Vue中BUG解决】npm error path git

报错内容如下: 从错误信息可知,这是一个 ENOENT(No Entry,即找不到文件或目录)错误,并且与 git 相关。具体来说,npm 在尝试调用 git 时,无法找到 git 可执行文件,下面为…

Jenkins+gitee 搭建自动化部署

Jenkinsgitee 搭建自动化部署 环境说明: 软件版本备注CentOS8.5.2111JDK1.8.0_211Maven3.8.8git2.27.0Jenkins2.319最好选稳定版本,不然安装插件有点麻烦 一、安装Jenkins程序 1、到官网下载相应的版本war或者直接使用yum安装 Jenkins官网下载 直接…

插入排序和希尔排序

目录 插入排序 插入排序代码实现: 插入排序思路: 希尔排序: 什么是希尔排序: 希尔排序代码实现: 希尔排序思路: 插入排序(稳定) 假设有这样一个数组,想要从小到大进行排…

elasticsearch

1、什么是elasticsearch elasticsearch被广泛用于日志分析、实时监控领域 elastic stack (ELK) ①kibana 数据可视化 ②elasticsearch存储、计算、搜索数据 ③Longstash、Beats 数据抓取 操作ES的语句称之为DSL语句 2、ES倒排索引 3、ES单节点安装…

【AcWing】蓝桥杯辅导课-数学与简单DP

目录 数学 买不到的数目 蚂蚁感冒 饮料换购 DP 01背包问题 摘花生 最长上升子序列 地宫取宝 波动数列 数学 买不到的数目 1205. 买不到的数目 - AcWing题库 这道题的意思就是给定两个正整数p和q,求xpyq这一个组合不能凑出来的最大正整数是多少 首先我们…

PyQt学习记录01——加法计算器

0. 安装配置 0.1 安装相关库 首先打开你的PyCharm程序,然后新建一个目录用于学习,其次在terminal中输入 pip install pyqt5如果你不具有科学上网能力,请改为国内源 pip install pyqt5 -i https://pypi.douban.com/simple然后安装pyqt相关…

[Linux] 信号(singal)详解(二):信号管理的三张表、如何使用coredump文件、OS的用户态和内核态、如何理解系统调用?

标题:[Linux] 信号管理的三张表、如何使用coredump文件、OS的用户态和内核态、如何理解系统调用? 水墨不写bug (图片来源:文心一言) 正文开始: 目录 一、信号管理的三张表 (1)三张表…

2025.2.11

1> 制作一个闹钟软件 .h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QLabel> #include <QLineEdit> #include <QPushButton> #include <QTime> #include <QTimer> #include <QTimeEdit> #include <QDa…

和鲸科技上线 DeepSeek 系列模型服务,助力数智企业 AI 业务创新!

近日&#xff0c;和鲸科技团队宣布旗下数据科学协同平台 ModelWhale 实现对 DeepSeek 全系列大模型的深度支持&#xff0c;旨在帮助更多数智化转型企业提供从算力基建到业务融合的全栈式解决方案&#xff0c;快速搭建自主可控的云端智能服务体系&#xff0c;实现大模型与业务系…

使用亚马逊针对 PyTorch 和 MinIO 的 S3 连接器进行模型检查点处理

2023 年 11 月&#xff0c;Amazon 宣布推出适用于 PyTorch 的 S3 连接器。适用于 PyTorch 的 Amazon S3 连接器提供了专为 S3 对象存储构建的 PyTorch 数据集基元&#xff08;数据集和数据加载器&#xff09;的实现。它支持用于随机数据访问模式的地图样式数据集和用于流式处理…