package com.thealgorithms.misc; import java.util.*; /* *A matrix is sparse if many of its coefficients are zero (In general if 2/3rd of matrix elements *are 0, it is considered as sparse). The interest in sparsity arises because its exploitation can *lead to enormous computational savings and because many large matrix problems that occur in *practice are sparse. * * @author Ojasva Jain */ class Sparcity { /* * @return Sparcity of matrix * * where sparcity = number of zeroes/total elements in matrix * */ static double sparcity(double[][] mat) { int zero = 0; // Traversing the matrix to count number of zeroes for (int i = 0; i < mat.length; i++) { for (int j = 0; j < mat[i].length; j++) { if (mat[i][j] == 0) { zero++; } } } // return sparcity return ((double) zero / (mat.length * mat[1].length)); } // Driver method public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Enter number of rows in matrix: "); int n = in.nextInt(); System.out.println("Enter number of Columns in matrix: "); int m = in.nextInt(); System.out.println("Enter Matrix elements: "); double[][] mat = new double[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { mat[i][j] = in.nextDouble(); } } System.out.println("Sparcity of matrix is: " + sparcity(mat)); in.close(); } }