判断矩阵是否为稀疏矩阵

1 说明

在此程序中,我们需要判断给定的矩阵是否为稀疏矩阵。

如果矩阵的大多数元素为0,则称该矩阵为稀疏矩阵。这意味着该矩阵包含的非零元素非常少。

为了判断给定的矩阵是否是稀疏矩阵,我们首先计算矩阵中存在的零元素的数量。然后计算矩阵的大小。为了使矩阵稀疏,数组中存在的零元素数必须大于size/2。

上面的矩阵中存在的零数目为6,矩阵的大小为3 * 3 =9。由于6> 4.5,这意味着给定数组的大多数元素为零。因此,上述矩阵是稀疏矩阵。

2 算法思路

  • 步骤1:开始
  • 步骤2:定义行,列,大小
  • 步骤3: SET计数= 0
  • 步骤4:初始化第一个矩阵a [] [] = {{4,0,0},{0,5,0},{0,0,6}}
  • 步骤5:行= a.length
  • 步骤6: cols = a [0] .length
  • STEP 7:大小=行数*列数
  • 步骤8:将步骤9重复到步骤10直到i <rows
            // for(i = 0; i <rows; i ++)
  • 步骤9:重复步骤10直到j <cols
            // for(j = 0; j <cols; j ++)
  • 步骤10: if(a [i] [j] == 0)然后计数++
  • 步骤11: if(count> size / 2),则打印“是”,否则打印“否”
  • 步骤12:结束

3 程序实现

/**
 * 一点教程网: http://www.yiidian.com
 */
public class SparseMatrix    
{    
    public static void main(String[] args) {    
        int rows, cols, size, count = 0;    
            
        //Initialize matrix a    
        int a[][] = {       
                        {4, 0, 0},    
                        {0, 5, 0},    
                        {0, 0, 6}    
                    };    
              
          //Calculates number of rows and columns present in given matrix    
          rows = a.length;    
        cols = a[0].length;    
            
        //Calculates the size of array    
        size = rows * cols;    
            
        //Count all zero element present in matrix    
        for(int i = 0; i < rows; i++){    
            for(int j = 0; j < cols; j++){    
                if(a[i][j] == 0)    
                    count++;    
                }    
            }    
                
        if(count > (size/2))    
            System.out.println("Given matrix is a sparse matrix");    
        else    
            System.out.println("Given matrix is not a sparse matrix");    
    }    
}  

以上代码输出结果为:

Given matrix is a sparse matrix

 

热门文章

优秀文章