矩阵数据结构入门指南:声明、初始化与基本操作

矩阵(Matrix)或网格(Grid)是一种二维数组,广泛应用于数学和科学计算中。它也可以被视为数组的数组,其中每个索引处的数组大小相同。

矩阵数据结构的表示

如下所示,元素按行和列组织。图中,单元格 a[0][0] 是第一行第一列的第一个元素。

矩阵数据结构的声明

矩阵或二维数组的声明与一维数组非常相似,具体如下。

C++

cpp 复制代码
#include <iostream>
#include <vector>
using namespace std;

int main() {
    int rows = 3, cols = 3;
    vector<vector<int>> arr(rows, vector<int>(cols));
    return 0;
}

C

c 复制代码
#include <stdio.h>

int main() {
    int rows = 3, cols = 3;
    int arr[rows][cols];
    return 0;
}

Java

java 复制代码
public class GFG {
    public static void main(String[] args) {
        int rows = 3, cols = 3;
        int[][] arr = new int[rows][cols];
    }
}

Python

python 复制代码
rows = 3
cols = 3
arr = [[0]*cols for _ in range(rows)]
print(arr)

C#

csharp 复制代码
using System;

public class GFG {
    static public void Main() {
        int rows = 3, cols = 3;
        int[,] arr = new int[rows, cols];
    }
}

JavaScript

javascript 复制代码
let rows = 3, cols = 3;
let arr = new Array(rows);
for (let i = 0; i < arr.length; i++) {
    arr[i] = new Array(cols);
}

矩阵数据结构的初始化

初始化时,我们为矩阵的所有单元格赋予一些初始值。以下是不同语言中初始化矩阵的实现。

C++

cpp 复制代码
vector<vector<int>> arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

学矩阵数据结构,最头疼的就是光看概念、记不住声明和初始化的流程。如果能把抽象逻辑变成能"动"的动画,理解效率会高很多。强烈安利一个叫图码的宝藏网站,它把60多种数据结构和算法做成了交互式动画可视化,不仅支持输入自定义数据生成动画,还能上传C/C++/Java/Python代码进行可视化解析。这个工具专门针对国内408考研和高校数据结构期末考试编写,知识点和可运行代码都很详细。想彻底搞懂矩阵操作,不妨直接去图码体验一下,边看动画边动手,比死磕课本快多了。

图码-数据结构与算法交互式可视化平台

访问网站:https://totuma.cn

C

c 复制代码
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

Java

java 复制代码
int[][] arr = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

Python

python 复制代码
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

C#

csharp 复制代码
int[,] arr = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

JavaScript

javascript 复制代码
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

矩阵数据结构上的操作

我们可以在矩阵数据结构上执行多种操作。以下是一些最常见的操作:

1. 访问矩阵元素

与一维数组类似,可以通过索引随机访问矩阵中的元素。一个单元格有两个索引,一个用于行号,另一个用于列号。我们可以使用 arr[i][j] 访问第 i 行第 j 列的元素。

2. 矩阵遍历

我们可以通过使用两个 for 循环来遍历矩阵或二维数组的所有元素。

输出:

复制代码
1 2 3 4 
5 6 7 8 
9 10 11 12 

3. 矩阵搜索

我们可以通过遍历矩阵的所有元素来搜索一个元素。

输出:

复制代码
YES

4. 矩阵排序

我们可以按两种方式对矩阵进行排序:

  • 按行排序矩阵
  • 按列排序矩阵

相关文章

相关推荐
薛定e的猫咪8 分钟前
(AISTATS 2023)BaCaDI:未知干预下的贝叶斯因果发现
人工智能·深度学习·算法·机器学习
2401_8724187810 分钟前
Windows服务器:错误 403 - 禁止访问:本地 FTP 上传文件到网站服务器后提示无访问权限
运维·服务器·windows
吴声子夜歌26 分钟前
Nginx应用与运维——Nginx在Kubernetes中的应用(二)
运维·nginx·kubernetes
漂流瓶jz1 小时前
UVA-11491 奖品的价值 题解答案代码 算法竞赛入门经典第二版
c++·算法·图论·题解·aoapc·算法竞赛入门经典·uva
weixin_307779135 小时前
C++代码实现MATLAB中的dlarray函数功能
开发语言·c++·算法·matlab
Ruiery9 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包9 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
MicrosoftCloud10 小时前
用户权限 04|/etc/sudoers 安全配置:从最小授权到「别把 ALL 随便给人」
运维·安全·ubuntu·sudo·sudoers
hetao173383711 小时前
2026-10-03~04 hetao1733837 的刷题记录
c++·算法
꯭自꯭闭꯭11 小时前
达梦事物特性及MVCC
linux·运维·数据库