# Check if a given matrix is sparse or not

A matrix is a two dimensional data objects having m rows and n columns, therefore a total of m*n values. If most of the values of a matrix is 0 then we say that the matrix is sparse.
Consider a definition of Sparse where a matrix is considered sparse if number of 0s is more than half of the elements in matrix,

Examples:

```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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

To check whether a matrix is sparse matrix we only need to check the total number of elements that are equal to zero. If this count is more than (m * n)/2, we return true.

## CPP

 `// 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"``; ` `} `

## Java

 `// Java code to check  ` `// if a matrix is ` `// sparse. ` ` `  `import` `java.io.*; ` ` `  `class` `GFG { ` `     `  `    ``static` `int` `MAX = ``100``; ` `      `  `    ``static` `boolean` `isSparse(``int` `array[][], ``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 ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `array[][] = { { ``1``, ``0``, ``3` `},  ` `                            ``{ ``0``, ``0``, ``4` `},  ` `                            ``{ ``6``, ``0``, ``0` `} }; ` `      `  `        ``int` `m = ``3``, ` `            ``n = ``3``; ` `        ``if` `(isSparse(array, m, n)) ` `            ``System.out.println(``"Yes"``); ` `        ``else` `            ``System.out.println(``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed by ` `// Nikita Tiwari. `

## Python3

 `# Python 3 code to check ` `# if a matrix is ` `# sparse. ` ` `  `MAX` `=` `100` `  `  `def` `isSparse(array,m, n) : ` `     `  `    ``counter ``=` `0` `  `  `    ``# Count number of zeros ` `    ``# in the matrix ` `    ``for` `i ``in` `range``(``0``,m) : ` `        ``for` `j ``in` `range``(``0``,n) : ` `            ``if` `(array[i][j] ``=``=` `0``) : ` `                ``counter ``=` `counter ``+` `1` `  `  `    ``return` `(counter >  ` `            ``((m ``*` `n) ``/``/` `2``)) ` ` `  `# Driver Function ` `array ``=` `[ [ ``1``, ``0``, ``3` `], ` `          ``[ ``0``, ``0``, ``4` `], ` `          ``[ ``6``, ``0``, ``0` `] ] ` `m ``=` `3` `n ``=` `3` ` `  `if` `(isSparse(array, m, n)) : ` `    ``print``(``"Yes"``) ` `else` `: ` `    ``print``(``"No"``) ` `     `  `     `  `# this code is contributed by ` `# Nikita tiwari `

## C#

 `// C# code to check if a matrix is ` `// sparse. ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``static` `bool` `isSparse(``int` `[,]array, ``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 ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `[,]array = { { 1, 0, 3 },  ` `                         ``{ 0, 0, 4 },  ` `                         ``{ 6, 0, 0 } }; ` `     `  `        ``int` `m = 3, ` `            ``n = 3; ` `             `  `        ``if` `(isSparse(array, m, n)) ` `            ``Console.WriteLine(``"Yes"``); ` `        ``else` `            ``Console.WriteLine(``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m. `

## PHP

 ` ((``\$m` `* ``\$n``) / 2)); ` `} ` ` `  `    ``// Driver Code ` `    ``\$array` `= ``array``(``array``(1, 0, 3),  ` `                   ``array``(0, 0, 4),  ` `                   ``array``(6, 0, 0)); ` ` `  `    ``\$m` `= 3; ` `    ``\$n` `= 3; ` `    ``if` `(isSparse(``\$array``, ``\$m``, ``\$n``)) ` `        ``echo` `"Yes"``; ` `    ``else` `        ``echo` `"No"``; ` ` `  `// This code is contributed by anuj_67. ` `?> `

Output:

```Yes
```

This article is contributed by Vineet Joshi. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

My Personal Notes arrow_drop_up

Improved By : vt_m

Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.