📜  C ++程序检查给定矩阵是否稀疏

📅  最后修改于: 2022-05-13 01:54:18.748000             🧑  作者: Mango

C ++程序检查给定矩阵是否稀疏

矩阵是具有 m 行和 n 列的二维数据对象,因此总共有 m*n 个值。如果一个矩阵的大部分值都是 0,那么我们说这个矩阵是稀疏的。
考虑稀疏的定义,如果 0 的数量超过矩阵中元素的一半,则认为矩阵是稀疏的,

例子:

Input : 1 0 3
        0 0 4
        6 0 0
Output : Yes
There are 5 zeros. This count
is more than half of matrix
size.

Input : 1 2 3
        0 7 8
        5 0 7 
Output: No 

要检查一个矩阵是否为稀疏矩阵,我们只需要检查等于零的元素的总数。如果这个计数大于 (m * n)/2,我们返回 true。

C++
// CPP code to check if a matrix is
// sparse.
#include 
using namespace std;
  
const int MAX = 100;
  
bool isSparse(int array[][MAX], int m, int n)
{
    int counter = 0;
  
    // Count number of zeros in the matrix
    for (int i = 0; i < m; ++i)
        for (int j = 0; j < n; ++j)
            if (array[i][j] == 0)
                ++counter;
  
    return (counter > ((m * n) / 2));
}
  
// Driver Function
int main()
{
    int array[][MAX] = { { 1, 0, 3 }, 
                        { 0, 0, 4 }, 
                        { 6, 0, 0 } };
  
    int m = 3,
        n = 3;
    if (isSparse(array, m, n))
        cout << "Yes";
    else
        cout << "No";
}


输出:

Yes

请参阅有关检查给定矩阵是否稀疏的完整文章以获取更多详细信息!