一、二维数组转换成稀疏矩阵
1、思路分析
a、遍历二维数组,来获取稀疏矩阵的有效数据个数
b、根据有效数据的个数来创建稀疏矩阵
c、将数值赋值给稀疏矩阵
二、稀疏矩阵转二维数组
1、思路分析
a、遍历稀疏矩阵的行和列,创建二维数组
b、遍历系数矩阵有效数据赋值给二维数组
三、代码实现
package sparsematrix;/* *@Author:HQF *@create:2021/12/2 18:39 */ import java.lang.reflect.Array; public class ArrayToSaparseMatrix { public static void main(String[] args) { // int[][] list = new int[11][11]; // list[1][2] = 1; // list[2][3] = 3; // ArrayToSaparseMatrix(list); int[][] saparseMatric = new int[3][3]; saparseMatric[0][0] = 11; saparseMatric[0][1] = 11; saparseMatric[0][2] = 2; saparseMatric[1][0] = 1; saparseMatric[1][1] = 2; saparseMatric[1][2] = 1; saparseMatric[2][0] = 2; saparseMatric[2][1] = 3; saparseMatric[2][2] = 3; } public static void ArrayToSaparseMatrix(int[][] list) { int num = 0; for (int i = 0; i < list.length ; i++) { for (int j = 0; j < list[0].length; j++) { if (list[i][j] > 0) { num++; } } } int[][] saparseMatric = new int[num + 1][3]; int row = 1; saparseMatric[0][0] = list.length; saparseMatric[0][1] = list[0].length; saparseMatric[0][3] = 2; for (int i = 0; i < list.length; i++) { for (int j = 0; j < list[0].length ; j++) { if (list[i][j] > 0) { saparseMatric[row][0] = i; saparseMatric[row][1] = j; saparseMatric[row][2] = list[i][j]; row++; } } } for (int i = 0; i < num; i++) { for (int j = 0; j < 3; j++) { System.out.println(saparseMatric[i][j]); } } } public static void SaparseMatrixToArray(int[][] saparseMatric) { int row = saparseMatric[0][0]; int col = saparseMatric[0][1]; int[][] list = new int[row][col]; for (int i = 1; i < saparseMatric.length - 1; i++) { list[saparseMatric[i][0]][saparseMatric[i][1]] = saparseMatric[i][2]; } } }