用于确定给定矩阵是否为稀疏矩阵的Java程序
矩阵是具有 m 行和 n 列的二维数据对象,因此总共有 m*n 个值。如果矩阵的大多数值都是 0,那么我们称该矩阵为稀疏矩阵。因此,我们的目标是计算矩阵中存在的 0 的数量。如果它们超过矩阵中元素的一半,则打印YES ,否则打印NO作为输出。
例子:
Input: 1 0 3
0 0 4
6 0 0
Output: Yes
Explaination:There are 5 zeros in the matrix which
is more than half of the matrix size.
Input: 1 2 3
0 7 8
5 0 7
Output: No
Explaination:There are 2 zeros in the matrix which
is less than half of the matrix size.
要检查矩阵是否是稀疏矩阵,我们只需要检查等于零的元素总数。如果此计数大于 (m * n)/2,则打印 Yes else No。有两种方法可以这样做。
在这种方法中,我们将检查矩阵是否是稀疏矩阵。
- 取矩阵。
- 一一遍历矩阵的元素并计算零的数量。
- 检查计数是否大于 (m*n)/2,如果是,则否。
下面是上述方法的实现:
Java
// Java Program to Determine if a given
// Matrix is a Sparse Matrix
// Importing Libraries
import java.io.*;
class GFG {
// Driver Function
public static void main(String args[])
{
// Initialising and declaring
// variables and array
int array[][]
= { { 1, 0, 3 }, { 0, 0, 4 }, { 6, 0, 0 } };
int m = 3;
int n = 3;
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;
// Printing result
if (counter > ((m * n) / 2))
System.out.println("Yes");
else
System.out.println("No");
}
}
输出
Yes
时间复杂度: O(m*n)