在 C++ 中检查给定矩阵是否稀疏

c++server side programmingprogramming更新于 2024/9/23 1:38:00

在这里我们将看到如何检查矩阵是否稀疏。稀疏矩阵是大多数元素为 0 的矩阵。稀疏矩阵的定义是,如果 2/3 的元素为 0,则该矩阵表示为稀疏矩阵。以下是稀疏矩阵的示例。

为了检查它,我们将计算矩阵中 0 的数量,然后如果该计数大于总元素的 2/3,则这是稀疏的。

示例

#include <iostream>
#include <cmath>
#define MAX 5
using namespace std;
bool isSparseMatrix(int arr[][MAX], int m, int n) {
   int counter = 0;
   for (int i = 0; i < m; i++)
   for (int j = 0; j <n; j++)
   if (arr[i][j] == 0)
      counter++;
   return (counter > (2*(m * n) / 3));
}
int main() {
   int matrix[MAX][MAX] = {
      {0, 2, 0, 0, 0},
      {8, 0, 0, 0, 0},
      {0, 3, 0, 0, 0},
      {0, 9, 0, 3, 0},
      {0, 0, 0, 0, 4}
   };
   if(isSparseMatrix(matrix, MAX, MAX)){
      cout << "这是稀疏矩阵";
   } else {
      cout << "这不是稀疏矩阵";
   }
}

输出

这是稀疏矩阵

相关文章