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

408第一季 - 数据结构 - 数组和特殊矩阵

只考选择题 

闲聊

每个格子都有属于它的地址

行优先

 

比如你要求A[1][2],按照公式可以 100 + (1*4+2)*1 = 106

列优先

列优先是j乘的m行

求A[1][2]

做题区

这个1个存储单元原来是存储大小啊,这沟八题

 算出有多少列 n

一共有39列,然后带入下面的公式很快算出来

特殊矩阵的压缩存储

用途

二维矩阵变成一位数组

对称矩阵

上三角元素与下三角元素对应的地方相同,所以浪费了一半的空间

按行存的话就是第一行存1个,第二行存2个,依次推

按列存的话就是第一列存n个,第二列存n-1个,依次推

公式不用管

三角矩阵

注意,空的地方不一定是0,也有可能是常数项,也能构造成三角矩阵

公式不用管

三对角矩阵

只有主对角线和旁边的2个

按行按列存都是第一行或列是2个,最后一行或列2个,其他都是3个

做题区

1

小心题目使坏,这里是1-100也就是100行 * 100列,如果是0-100就变成了101行 * 101列

这里是三对角矩阵,一开始是2个,后面可别一直3+3+3+3+3+3+3....因为到30,30就停了,所以最后一行存2个

最后的公式是2 + 3*28 + 2 = 88 ,一共是88个,但别急,因为是从0开始存一维数组的,所以最后是88-1=87个

2

 这里是1-12,所以是12行*12列

6,6是主对角线,别加魔怔了,所以是 12(第1行)+ 11(第2行) + 10(第3行) + 9(第4行) + 8(第5行) + 1(第6行) =51,然后别急要-1变成数组下标(默认为0) 51-1=50

3

注意审题啊,byd列优先,然后这里m7,2是下三角,但这里是上三角,又因为是对称的缘故,所以m7,2就是m2,7

公式走起, 1(第一列)+2(第二列)+3(第三列)+4(第四列)+5(第五列)+6(第六列)+2(第七列)-1 = 22

稀疏矩阵

概述

三元组(行标,列表,值)

因为是稀疏图的,这样就很节省空间了

用数组的话叫三元组表,用链表存是十字链表

可以看见像十字交叉一样,链表

做题区

1

a

2

 这里就是要还原稀疏矩阵M,我们知道三元组表有行i,列j和值a,但不知道这个表有多大,只有知道了这个表的范围才能还原,所以 I 和 III 是必须要的

这II和IV不就是三元组表的东西吗,干嘛又存了一次,题目都说了除三元组表外了

a

 

http://www.xdnf.cn/news/12478.html

相关文章:

  • 代码安全规范1.1
  • STM32标准库-TIM输出比较
  • table表格合并,循环渲染样式
  • git commit 执行报错 sh: -/: invalid option
  • SpringBoot+MySQL家政服务平台 设计开发
  • OpenAI对抗法庭命令:捍卫ChatGPT用户隐私之战
  • mybatis的if判断==‘1‘不生效,改成‘1‘.toString()才生效的原因
  • 浏览器后台服务 vs 在线教育:QPS、并发模型与架构剖析
  • 如何对Video视频进行SEO优化?
  • Ubuntu Cursor升级成v1.0
  • 大数据量高实时性场景下订单生成的优化方案
  • 2025主流智能体Agent终极指南:Manus、OpenManus、MetaGPT、AutoGPT与CrewAI深度横评
  • windows上的visual studio2022的项目使用jenkins自动打包
  • Visual Studio问题记录
  • 准确--k8s cgroup问题排查
  • 【学习笔记】构造函数+重载相关
  • 生成 Git SSH 证书
  • Linux 常用命令语法总结
  • 【Go语言基础【9】】字符串格式化与输入处理
  • 神经网络-Day46
  • react 常见的闭包陷阱深入解析
  • 循环神经网络(RNN)
  • 麒麟系统使用-进行.NET开发
  • 1.3 编译程序:单个C文件和多个C文件
  • Python打卡DAY46
  • JSON解析崩溃原因及解决方案
  • linux系统dd 工具介绍
  • 理解JavaScript中map和parseInt的陷阱:一个常见的面试题解析
  • win10+TensorRT+OpenCV+Qt+YOLOV8模型部署教程
  • 2025年多层PCB技术发展与厂商实践指南