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

3.4数组和特殊矩阵

易错点:

  1. 存储位置,上三角or下三角
  2. 行优先,列优先
  3. 矩阵元素下标从1or 0开始
  4. 数组元素下标从1 or 0 开始

做题可以用特殊值代入法检验

3.4.1数组的定义

数组是由n相同类型的数据元素构成的有序序列

数组是线性表的推广,一个数组可以视为一个线性表

数组一旦被定义,其长度不会再改变,所以数组只会有存取元素和修改元素的操作

3.4.2数组的存储结构

多维数组

有两种映射方法:按行优先和按列优先

按行优先

M行N列二维数组b[M][N]中

i*N表示前i-1行一个有多少个元素

i*N+j表示前i-1行的元素个数+第i行的元素个数

b[i][j]的存储地址=LOC+(i*N)+j*sizeof(elemType)

按列优先

M行N列二维数组b[M][N]中

j*M表示前j-1列一个有多少个元素

j*N+i表示前j-1列的元素个数+第j列的元素个数

b[i][j]的存储地址=LOC+(j*M)+i*sizeof(elemType)

3.4.3特殊矩阵的压缩存储

※描述矩阵时,行号列号从1开始,数组通常下标从0开始,具体看题目给出条件

压缩矩阵:多个值相同的元素只分配一个存储空间

1.对称矩阵

下三角区+主对角线按行优先存储

数组大小:n(n+1)/2-----1+2+3+...+n

元素下标之间的对应关系:

i>=j:前i-1行+第i行的第几个=1+2+3+...+(i-1)+(j-1)

下三角区+主对角线按列优先存储

k=n+(n-1)+...+(n-j+2)+(i-j+1)  i>=j

2.三角矩阵

除了主线和下三角元素其他都相同

数组长度=n(n+1)/2+1   下三角与主线的长度=1+2+3+..+(n) 单独存储常数的位置 +1

按行优先+下三角区

按行优先+上三角区

3.三对角矩阵

当|i-j|>1时,aij=0为三对角矩阵

存储元素个数=3n-2

元素下标间的关系为k=2i+j-3

3.4.4稀疏矩阵

1.将非零元素及其对应的行和列构成一个三元组

稀疏矩阵压缩存储后只能遍历,不可随机存储

struc{

int i;//行

int j;//列

int vslue;//值

}

2.十字链表存储--略

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java开发:文件上传和下载
  • 按摩虎口穴位的作用
  • Laravel php框架与Yii php 框架的优缺点
  • 上线前端系统
  • 7.C基础_数组
  • DAP-Seq:解锁转录因子结合位点的新钥匙
  • 眼在手外-机器人坐标系与相机坐标系标定方法
  • CTF-web基础 web服务器
  • 实战项目导航
  • 基于Django框架的挂号诊疗系统(源码+论文+部署讲解等)
  • 基于JAVA的物资管理系统设计与实现
  • C语言基础题:迷宫寻路(C语言版)
  • 软设之网络诊断命令
  • JavaScript青少年简明教程:事件及处理
  • DevOps 相关知识点总结
  • 0x05 Python数据分析,Anaconda八斩刀
  • GitUp, 你不可错过的秀外慧中的git工具
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Iterator 和 for...of 循环
  • Java基本数据类型之Number
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • QQ浏览器x5内核的兼容性问题
  • rc-form之最单纯情况
  • React-Native - 收藏集 - 掘金
  • Shell编程
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 不上全站https的网站你们就等着被恶心死吧
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 前端_面试
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 译有关态射的一切
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #{}和${}的区别是什么 -- java面试
  • #git 撤消对文件的更改
  • #数据结构 笔记三
  • $jQuery 重写Alert样式方法
  • (C11) 泛型表达式
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (七)Java对象在Hibernate持久化层的状态
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)Java算法:二分查找
  • (一)插入排序
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net 受管制代码
  • .NET连接MongoDB数据库实例教程
  • ??javascript里的变量问题
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——