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
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 <iostream> 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
<?php // PHP code to check if a matrix is // sparse. $MAX = 100; function isSparse( $array , $m , $n ) { $counter = 0; // Count number of zeros // in the matrix for ( $i = 0; $i < $m ; ++ $i ) for ( $j = 0; $j < $n ; ++ $j ) if ( $array [ $i ][ $j ] == 0) ++ $counter ; return ( $counter > (( $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
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
leave a comment
0 Comments