判断矩阵是否为稀疏矩阵
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
热门文章
优秀文章