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)); } }