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

news2024/11/22 19:40:28

数组及特殊矩阵

请添加图片描述

请添加图片描述

一、认识数组

1️⃣ 定义

  1. 什么是数组❓

    数组是由 n ( n ⩾ 1 ) n(n\geqslant1) n(n1)相同类型的数据元素的有限序列

    除了定义还需认识一些知识点:

    • 💡数组元素:数组中的每个数据元素称为一个数组元素。
    • 💡元素下标:每个元素中的序号
    • 💡维界:下标的取值范围(例:下图0…6为该数组维界)
    • 💡维数:a[7]: 一维数组、a[2][2]:二维数组、a[1][2][3]:三维数组
    • 💡 各数组元素大小相同(数据类型相同,字长相同,即大小相同),且物理上连续存放
      在这里插入图片描述
  2. 👀数组与线性表的关系

    1. 数组是线性表的推广。一维数组可以视为一个线形表;二维数组可视为其元素也是定长线性表的线性表。
    2. 数组一旦被定义,其维数和维界就不在改变。因此,除结构的初始化和销毁外,数组只会有存取元素和修改元素的操作。

2️⃣ 存储结构

由于数组在物理上是连续存储的,所以只要知道数组的起始地址、数据类型,就可以算出其存储位置

1. 一维数组

若一维数组A[n],则其存储结构关系式为:

数组下标从0开始:LOC(A[i]) = LOC(A[0])+i*sizeof(ElemType)        (0<=i<n-1)

数组下标从1开始:LOC(A[i]) = LOC(A[1])+(i-1)*sizeof(ElemType)    (1<=i<n)

🐂小试牛刀


📋题目描述:
  一维数组A[0...n]采用顺序存储结构,每个元素占用4个字节,该数组的首地址为120,求A[4]的存储地址( )

✅正确答案:136


👻题目解析
注意数组下标是从0开始的
  如图:在这里插入图片描述
  💡第一个4:0—4之间一共有四个元素
  💡第二个4:该数组是int类型,字节为4B

2. 二维数组

对于多维数组,有两种映射方法:按行优先、按列优先

  1. 按行存储

    📌基本思想先行后列,先存储行号比较小的元素,行号相等先存储列号比较小的元素。

    设二维数组A[m][n],则存储结构关系式为:

    数组下标从0开始:LOC(A[i,j]) = LOC(A[0,0])+(i*n+j)*sizeof(ElemType) 
    
    数组下标从1开始:LOC(A[i,j]) = LOC(A[1,1])+[(i-1)*n+j]*sizeof(ElemType) 
    

    🐂小试牛刀


    📋题目描述:
      假设二维数组A[3,4]每个元素占用2个存储单元,数组元素(A[0][0])的起始地址为1000,求数组元素A[2][2]的起始地址。

    ✅正确答案:1020


    👻题目解析
    注意数组下标是从0开始的
      公式求解:LOC(A[2,2]) = LOC(A[0,0])+(2*4+2)*2=1000+20=1020
      图解:在这里插入图片描述

    • 列优先(原理同上)

      📌基本思想先列后行,先存储列号比较小的元素,列号相等先存储行号比较小的元素。

      设二维数组A[m][n],则存储结构关系式为:

      数组下标从0开始:LOC(A[i,j]) = LOC(A[0,0])+(j*n+i)*sizeof(ElemType) 
      
      数组下标从1开始:LOC(A[i,j]) = LOC(A[1,1])+[(j-1)*n+i]*sizeof(ElemType) 
      

请添加图片描述

二、特殊矩阵的压缩存储

1.💡 压缩矩阵:指为多个值相同的元素分配一个存储空间,对零元素不分配存储空间。其目的是节省存储空间
2. 💡特殊矩阵:值具有许多相同矩阵元素或零元素,并且这些相同矩阵元素或零元素的分布有一定规律性的矩阵。常见特殊矩阵有对称矩阵、上(下)三角矩阵、对角矩阵等。
3. 💡特殊矩阵的压缩存储方法:找到特殊矩阵中值相同的矩阵元素的分布规律,把那些呈现规律性分布的、值相同的多个矩阵元素压缩到一个存储空间中。

1️⃣ 对称矩阵

  1. 对称矩阵是什么❓
    上三角区的元素==下三角区元素,A[i][j]==A[j][i]
    在这里插入图片描述

  2. 对称矩阵为何不能用二维矩阵存储❓
    对于n阶对称矩阵,上三角元素的所有元素和下三角区对应的元素相同,若扔采用二维数组存放,则会浪费一半的空间,对此将对称矩阵存放在一维数组中。

  3. 那么如何将二维数组存储于一维数组❓

    💤思考1:有多少个二维元素A[0...n-1][0...n-1]存于一维元素中❓


    由于上三角区==下三角区,只需要在一维数组中存储主对角线+下三角区
    在这里插入图片描述

    1(A[0])1  个元素
    第 2(A[1])2  个元素
    第 3(A[2])3  个元素
    ......
    第 n 行(A[n-1]):n个元素(❗由于数组从0开始,A[0]占了一行,所以A[n]是第n-1行)
    
    共:1+2+3+...+n=[1+n]*n/2=(n+1)*n/2
    

    答案:一维数组共需存储 ( n + 1 ) ∗ n 2 \frac {(n+1)*n} 2 2(n+1)n个元素

    💤思考2:按行排列,二维数组A[0…n-1][0…n-1]与一维数组B[0… ( n + 1 ) ∗ n 2 − 1 \frac {(n+1)*n} 2-1 2(n+1)n1]对应的关系❓

    在这里插入图片描述
    👀看图做题:

    1. A[1][1]在一维数组B[0… ( n + 1 ) ∗ n 2 − 1 \frac {(n+1)*n } 2-1 2(n+1)n1]的位置:
      A[1][1]位于第2行的第2列
      	第1行:共1个元素
      	第2行:有2个元素
      求和:1+2=3
      B的下标从0开始,所以3-1=2,即A[1][1]`在一维数组B[2]
    2. A[2][1]在一维数组B[0… ( n + 1 ) ∗ n 2 − 1 \frac {(n+1)*n} 2-1 2(n+1)n1]的位置:
      A[2][1]位于第3行的第2列
      	第1行:共1个元素
      	第2行:共2个元素
      	第3行:有2个元素
      求和:1+2+3=5
      B的下标从0开始,所以5-1=4,即A[2][1]`在一维数组B[4]
    3. A[i][j]在一维数组B[0… ( n + 1 ) ∗ n 2 − 1 \frac {(n+1)*n } 2-1 2(n+1)n1]的位置:
      A[i][j]位于第i+1行的第j+1列
      	第 1 行:共 1 个元素
      	第 2 行:共 2 个元素
      	第 3 行:共 3 个元素
      	...
      	第 i 行:共 i 个元素
      	第i+1行:有j+1个元素
      求和:1+2+3+...+i+(j+1)=(i+1)*i/2+(j+1)
      B的下标从0开始,所以(i+1)*i/2+(j+1)-1=(i+1)*i/2+j,即A[i][j]`在一维数组B[(i+1)*i/2+j]

    答案:按行排序,二位数组A[i][j]与一维数组B[ ( i + 1 ) ∗ i 2 + j \frac {(i+1)*i} 2+j 2(i+1)i+j]对应

    💤思考3:按列排列,二维数组A[0…n-1][0…n-1]与一维数组B[0… ( n + 1 ) ∗ n 2 − 1 \frac {(n+1)*n } 2-1 2(n+1)n1]对应的关系❓


    在这里插入图片描述
    👀看图做题:

    1. A[1][1]在一维数组B[0… ( n + 1 ) ∗ n 2 − 1 \frac {(n+1)*n } 2-1 2(n+1)n1]的位置:
      A[1][1]位于第2行的第2列
      	第1列:共n-1个元素
      	第2列:有1个元素
      求和:n-1+1=n
      B的下标从0开始,所以n-1=(n-1),即A[1][1]`在一维数组B[n-1]
    2. A[2][1]在一维数组B[0… ( n + 1 ) ∗ n 2 − 1 \frac {(n+1)*n} 2-1 2(n+1)n1]的位置:
      A[2][1]位于第3行的第2列
      	第1列:共n-1个元素
      	第2列:共2个元素
      求和:n-1+2=n+1
      B的下标从0开始,所以n+1-1=n,即A[2][1]`在一维数组B[n]
    3. A[i][j]在一维数组B[0… ( n + 1 ) ∗ n 2 − 1 \frac {(n+1)*n } 2-1 2(n+1)n1]的位置:
      A[i][j]位于第i+1行的第j+1列
      	第 1 列:共 n-1 个元素
      	第 2 列:共 n-2 个元素
      	第 3 列:共 n-3 个元素
      	...
      	第 j 列:共 n-j 个元素
      	第j+1列:有i+1-j个元素
      求和:(n-1)+(n-2)+(n-3)+...+(n-j)+(i+1-j)=(n-1+n-j)*j/2+i+1-j=(2n-1-j)*j/2+i+1-j
      B的下标从0开始,所以(2n-1-j)*j/2+i+1-j-1=(2n-1-j)*j/2+i-j,即A[i][j]在一维数组B[(2n-1-j)*j/2+i-j]

    答案:按列排序,二位数组A[i][j]与一维数组B[ ( ( 2 n − 1 − j ) ∗ j 2 + i − j \frac {((2n-1-j)*j} 2+i-j 2((2n1j)j+ij]对应

    💤思考4:思考二、三都是以下三角区为例,那么上三角区如何存储❓

    在这里插入图片描述
    由图可知,上三角区与下三角区的关系为:A[i][j]==A[j][i]
    所以:

    • 💡上按行==下按列,二位数组A[i][j]与一维数组B[ ( ( 2 n − 1 − i ) ∗ i 2 + j − i \frac {((2n-1-i)*i} 2+j-i 2((2n1i)i+ji]对应
    • 💡上按列==上按排,二位数组A[i][j]与一维数组B[ ( j + 1 ) ∗ j 2 + i \frac {(j+1)*j} 2+i 2(j+1)j+i]对应

2️⃣ 三角矩阵

  1. 三角矩阵是什么❓
    三角矩阵可以分为上三角矩阵和下三角矩阵

    • 💡下三角矩阵:上三角区所有元素均为一个常量
    • 💡上三角矩阵:下三角区所有元素均为一个常量
      在这里插入图片描述
  2. 三角矩阵如何存储❓

    💤思考5:有多少个二维元素A[0...n-1][0...n-1]存于一维元素中❓

    以下三角矩阵为例:

      三角矩阵与对称矩阵的存储方式相似,不同之处在于,)存储完下三角区和主对角线后,紧接着存储上三角区的常量一次
    在这里插入图片描述

    由对称矩阵可知,下三角区+主对角线的元素=(n+1)*n /2个元素
    三角矩阵多了一个常量:所以共有(n+1)*n /2+1个元素
    

    答案:一维数组共需存储 ( n + 1 ) ∗ n 2 + 1 \frac {(n+1)*n} 2+1 2(n+1)n+1个元素

    💤思考6:下三角矩阵如何存储❓

    1. 按行存储
      在这里插入图片描述
      👀看图知:

      • 💡三角矩阵的下三角区+主对角线与对阵矩阵存储相同,可直接使用思考二的结论.
      • 💡三角矩阵的上三角区的常量存于一维数组的最后,所以位置固定: ( n + 1 ) ∗ n 2 \frac {(n+1)*n} 2 2(n+1)n

      答案:按行排序,二维数组A[i][j]B[k]相对应,其中 k = { ( i + 1 ) ∗ i 2 + j ( 下和主元素 ) ( n + 1 ) ∗ n 2 + 1 ( 上元素 ) k= \begin{cases} {\frac {(i+1)*i} 2+j} (下和主元素) \\ \\ \frac {(n+1)*n} 2+1(上元素) \end{cases} k= 2(i+1)i+j(下和主元素)2(n+1)n+1(上元素)

    2. 按列存储
      在这里插入图片描述
      👀看图知:

      • 💡三角矩阵的下三角区+主对角线与对阵矩阵存储相同,可直接使用思考三的结论.
      • 💡三角矩阵的上三角区的常量存于一维数组的最后,所以位置固定: ( n + 1 ) ∗ n 2 \frac {(n+1)*n} 2 2(n+1)n

      答案:按行排序,二维数组A[i][j]B[k]相对应,其中 k = { ( ( 2 n − 1 − j ) ∗ j 2 + i − j ( 下和主元素 ) ( n + 1 ) ∗ n 2 + 1 ( 上元素 ) k= \begin{cases} {\frac {((2n-1-j)*j} 2+i-j} (下和主元素) \\ \\ \frac {(n+1)*n} 2+1(上元素) \end{cases} k= 2((2n1j)j+ij(下和主元素)2(n+1)n+1(上元素)

    💤思考7:上三角矩阵如何存储❓

    1. 按行存储
      在这里插入图片描述
      👀图知:

      • 💡三角矩阵的上三角区+主对角线与对阵矩阵存储相同,可直接使用思考四的结论.
      • 💡三角矩阵的下三角区的常量存于一维数组的最后,所以位置固定: ( n + 1 ) ∗ n 2 \frac {(n+1)*n} 2 2(n+1)n

      答案:按行排序,二维数组A[i][j]B[k]相对应,其中 k = { ( ( 2 n − 1 − i ) ∗ i 2 + j − i ( 上和主元素 ) ( n + 1 ) ∗ n 2 + 1 ( 下元素 ) k= \begin{cases} {\frac {((2n-1-i)*i} 2+j-i} (上和主元素) \\ \\ \frac {(n+1)*n} 2+1(下元素) \end{cases} k= 2((2n1i)i+ji(上和主元素)2(n+1)n+1(下元素)

    2. 按列存储
      👀知:

      • 💡三角矩阵的上三角区+主对角线与对阵矩阵存储相同,可直接使用思考四的结论.
      • 💡三角矩阵的下三角区的常量存于一维数组的最后,所以位置固定: ( n + 1 ) ∗ n 2 \frac {(n+1)*n} 2 2(n+1)n

      答案:按行排序,二维数组A[i][j]B[k]相对应,其中 k = { ( j + 1 ) ∗ j 2 + i ( 上和主元素 ) ( n + 1 ) ∗ n 2 + 1 ( 下元素 ) k= \begin{cases} {\frac {(j+1)*j} 2+i} (上和主元素) \\ \\ \frac {(n+1)*n} 2+1(下元素) \end{cases} k= 2(j+1)j+i(上和主元素)2(n+1)n+1(下元素)

3️⃣三对角矩阵

  1. 三对角矩阵是什么❓

    • 💡三对角矩阵又称带状矩阵
    • 💡对于n阶方阵A中的任一元素 a i j a_ij aij,当 ∣ i − j ∣ > 1 |i-j|>1 ij>1时,有 a i j = 0 ( 0 ⩽ i , j ⩽ n − 1 ) a_ij=0(0\leqslant i,j\leqslant n-1) aij=0(0i,jn1)
      在这里插入图片描述
  2. 三对角矩阵如何存储❓

    💤思考8:有多少个二维元素A[0...n-1][0...n-1]存于一维元素中❓

      由上图可知,除了第一行和最后一行为两个元素,其他每行都为三个元素,共有3*n-2个元素

    答案:一维数组共需存储 3 ∗ n − 2 3*n-2 3n2个元素

    💤思考9:按行排序,二维数组A[0...n-1][0...n-1]与一维数组B[0...3n-3]对应的关系❓

      
    A[i][j]在一维数组B[0...3n-3]的位置:

    A[i][j]位于第i+1行的第j+1列
    	第 1 行:共 2 个元素
    	第 2 行:共 3 个元素
    	第 3 行:共 3 个元素
    	...
    	第 i 行:共 3 个元素
    	第i+1行:有j-i+2个元素
    求和:2+3+3+...+3+j-i+2=(3i-1)+j-i+2=2i+j+1
    B的下标从0开始,所以2i+j+1-1=2i+j,即A[i][j]在一维数组B[2i+j]

    答案:按行排序,二位数组A[i][j]与一维数组B[2i+j]对应

    💤思考10:按列排序,二维数组A[0...n-1][0...n-1]与一维数组B[0...3n-3]对应的关系❓

      
    A[i][j]在一维数组B[0...3n-3]的位置:

    A[i][j]位于第i+1行的第j+1列
    	第 1 列:共 2 个元素
    	第 2 列:共 3 个元素
    	第 3 列:共 3 个元素
    	...
    	第 j 列:共 3 个元素
    	第j+1列:有i-j+2个元素
    求和:2+3+3+...+3+i-j+2=(3j-1)+i-j+2=2j+i+1
    B的下标从0开始,所以2j+i+1-1=2j+i,即A[i][j]在一维数组B[2j+i]

    答案:按列排序,二位数组A[i][j]与一维数组B[2j+i]对应

请添加图片描述

三、稀疏矩阵

  1. 什么样的矩阵是稀疏矩阵❓
    💡非零元素远远少于矩阵元素个数
    例:100*100矩阵中,只有100个非零元素。
  2. 存储方式有哪些❓
    1. 三元组
      在这里插入图片描述

    2. 十字链表法
      在这里插入图片描述

参考资料

《王道:23数据结构考研复习指导》

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

198分成功上岸浙江工业大学MBA的备考经验分享

我是2022年刚被浙江工业大学MBA项目录取的一名新生&#xff0c;新的一年管理类联考备考已经开始&#xff0c;最近身边有很多小伙伴也都在咨询这方面的信息&#xff0c;趁着今天有空给大家分享下我的经验。 在备考开始之前首先要确定目标&#xff0c;因为工作在杭州&#…

【正点原子Linux连载】第四章 SDK包的使用 摘自【正点原子】ATK-DLRV1126系统开发手册

1&#xff09;实验平台&#xff1a;正点原子RV1126 Linux开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692176265749 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第四章 S…

学习周报-20230203

文章目录一 在rhel7系统使用Mariadb一 联系和区别二 需求三 部署安装3.1 环境准备3.2 安装软件包3.3 启动服务3.4 设置防火墙策略四 创建用户和库表4.1 登录数据库4.2 创建用户4.3 创建数据库和表五 备份和恢复5.1 备份 com 数据库5.2 模拟误删除操作5.3 恢复表二 使用grep忽略…

如何建立异形板框的内缩和外扩

如何建立异形板框的内缩和外扩 首先把需要内缩和外扩的外形图设置在信号层&#xff08;比如TOP&#xff09;&#xff0c;把线宽改为0mil&#xff08;方便计算&#xff09;。然后选择外形图&#xff0c;执行命令TJ&#xff0c;就可以得到内缩和外扩图形。然后把生成的图形修改到…

Linux-查找文件、软链接、打包压缩和软件安装

查找文件find软链接ln打包和压缩tar软件安装apt-get1.查找文件find命令功能强大&#xff0c;通常用来在特定的目录下搜索符合条件的文件序号命令作用01find[路径] -name"*.py"查找指定路径下扩展名是.py的文件&#xff0c;包括子目录如果省略路径&#xff0c;表示在当…

最新整理Spring面试题2023

Spring面试专题 1.Spring应该很熟悉吧&#xff1f;来介绍下你的Spring的理解 有些同学可能会抢答&#xff0c;不熟悉!!! 好了&#xff0c;不开玩笑&#xff0c;面对这个问题我们应该怎么来回答呢&#xff1f;我们给大家梳理这个几个维度来回答 1.1 Spring的发展历程 先介绍…

【C++入门】引用详解(引用的特性、引用的使用、引用与指针的区别)

文章目录1 引用概念2 引用特性3 使用场景4 常引用5 传值与传引用的效率比较5.1 值和引用作为函数参数的性能比较5.2 值和引用作为返回值类型的性能比较6 引用和指针的区别1 引用概念 引用不是新定义一个变量&#xff0c;而是给已存在的变量取了一个别名&#xff0c;编译器不会为…

浅谈网络流

网络 网络是一张单向图 , 每条边都有一个权值 c(u,v)c(u,v)c(u,v) 表示边 (u,v)(u,v)(u,v) 的容量. 特别的 , 图上有源点 (s)(s)(s) 和汇点 (t)(t)(t). 网络流 在一张网络上 , 从源点流出 , 最终流入汇点的流. f(u,v)f(u,v)f(u,v) 表示 (u,v)(u,v)(u,v) 的流量. 满足 : 容…

【测试总结系列-1】质量保障之测试左移和右移

在开发一个系统或者说软件&#xff0c;需求分析、软件设计、程序编码、软件测试、运行维护&#xff0c;这些阶段必不可少。整个周期中&#xff0c;作为测试人员&#xff0c;不是只在测试阶段才能发挥作用&#xff0c;也不是仅有测试对软件质量负责&#xff0c;一个项目团队&…

关于图片上传和在页面显示问题

最近在工作中遇到一个关于图片上传的问题。根据之前项目的经验&#xff0c;我知道目前这个公司上传图片有两种方式&#xff0c; 一种是把图片上传到公司服务器上&#xff0c;然后把图片放在服务器上的地址存在数据库中&#xff0c;要获得图片的时候直接从库中拿地址就行了另一…

分析网络抓包用 python 更高效

Abstract分析网络抓包用 python 更高效AuthorsWalter FanCategorylearning noteStatusv1.0Updated2023-01-10LicenseCC-BY-NC-ND 4.0 网络抓包分析用的最多的两大工具是 tcpdump 和 wireshark. 一般我们通过 tcpdump 或者 wireshark 来捕获网络包为 *.pcap 或者 *.pcapng 文件 …

Elasticsearch:在 Elasticsearch 中按距离有效地对地理点进行排序

计算搜索中两点之间的距离有很多用例。 如果你正在处理地理数据&#xff0c;那么无论你从事何种业务&#xff0c;这都必然会出现。 然后&#xff0c;在对这些点进行排序时&#xff0c;你可能需要考虑距离&#xff0c;因为……好吧&#xff0c;为什么不呢&#xff1f; 所以这里…

算法训练营DAY48|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

这一期到了买卖股票专题&#xff0c;买卖股票的有一些题型&#xff0c;可以使用贪心算法来求解&#xff0c;甚至有时候比动态规划更简单一些&#xff0c;但是本期是讲动态规划的运用&#xff0c;所以不做对于贪心的分析。今天只讲两道例题&#xff0c;其中第二题是第一题的变种…

[NeurIPS 2017] Poincaré Embeddings for Learning Hierarchical Representations

ContentsIntroductionPoincar EmbeddingsThe Limitations of Euclidean Space for Hierarchical DataEmbedding Hierarchies in Hyperbolic SpaceEvaluationReferencesIntroduction 如今&#xff0c;表征学习变得越来越重要 (e.g. word embedding, embeddings of graphs, embe…

如何在电脑上安装 Windows 版桌面编辑器 v7.3

线上编辑器的桌面端版本不需要持续的互联网连接&#xff0c;还可在计算机上处理脱机文件。因此&#xff0c;如果您需要此类功能&#xff0c;可从我们的网站中下载并安装桌面编辑器。 ONLYOFFICE桌面编辑器最新版 最近 ONLYOFFICE 发布了 v7.3&#xff0c;最新版本的桌面编辑器…

SpringBoot+Vue点餐系统

简介&#xff1a;本项目采用了基本的springbootvue设计的点餐。系统。详情请看截图。经测试&#xff0c;本项目正常运行。本项目适用于Java毕业设计、课程设计学习参考等用途。 项目描述 项目名称SpringBootVue点餐系统源码作者LHL项目类型Java EE项目 &#xff08;前后分离&a…

ESP-IDF:命令模式测试

ESP-IDF:命令模式 /命令模式/ /设计模式之开闭原则&#xff0c;对增加开放对修改关闭/ #include #include class ClientCommands{ //统一管理命令&#xff0c;这是比观察者模式多出来的地方 public: void AddMoney(){ cout<<“add money”<<endl; } void AddEqu…

图解LeetCode——1145. 二叉树着色游戏(难道:中等)

一、题目 有两位极客玩家参与了一场「二叉树着色」的游戏。游戏中&#xff0c;给出二叉树的根节点 root&#xff0c;树上总共有 n 个节点&#xff0c;且 n 为奇数&#xff0c;其中每个节点上的值从 1 到 n 各不相同。 最开始时&#xff1a; 「一号」玩家从 [1, n] 中取一个值…

Ubuntu22.04安装nvidia显卡驱动

Ubuntu22.04安装nvidia显卡驱动 目录 方法一&#xff1a;使用官方的NVIDIA驱动进行手动安装&#xff08;稳定、靠谱&#xff09; 方法二&#xff1a;使用系统自带的“软件和更新”程序-附加驱动更新&#xff08;需要联网&#xff0c;稳定性无法验证&#xff09; 浓缩极简方法…

MySQL入门篇-视图简介

备注:测试数据库版本为MySQL 8.0 这个blog我们来聊聊MySQL视图。 前言: 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中&#xff0c;是一个虚表。 即数据库中只存放视图的定义而不存放视图对应的数据&#xff0c;这些数据仍存放在导出视图的基本表中。 视…