欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java稀疏矩陣和三元組

傅智翔1年前7瀏覽0評論

Java中的稀疏矩陣是指矩陣中大多數元素都為0,只有極少數非零元素的矩陣。對于這類矩陣,傳統的存儲方式會浪費大量的空間。因此,有了一種更加高效的存儲方式,即三元組。

public class SparseMatrix {
private int row;    // 矩陣的行數
private int col;    // 矩陣的列數
private int[][] data;    // 矩陣的數據
public SparseMatrix(int row, int col, int[][] arr) {
this.row = row;
this.col = col;
this.data = new int[row][col];
for (int i = 0; i< arr.length; i++) {
int r = arr[i][0];    // 非零元素的行
int c = arr[i][1];    // 非零元素的列
data[r][c] = arr[i][2];    // 非零元素的值
}
}
public void display() {
for (int[] row : data) {
for (int v : row) {
System.out.print(v + "\t");
}
System.out.println();
}
}
public static void main(String[] args) {
int[][] arr = {{0, 2, 3}, {1, 1, 4}, {2, 0, 1}, {2, 2, 2}};
SparseMatrix matrix = new SparseMatrix(3, 3, arr);
matrix.display();
}
}

在上述代碼中,SparseMatrix是稀疏矩陣類,使用二維數組data存儲矩陣中的數據。在構造函數中,通過傳入的三元組數組arr初始化data數組。display方法用于按照矩陣的格式輸出data數組的內容。

下面是待存儲的稀疏矩陣:

0 0 3
0 4 0
1 0 0

將其轉換成三元組形式為:

0 2 3
1 1 4
2 0 1

使用SparseMatrix類可以將這個稀疏矩陣以三元組的形式存儲:

SparseMatrix matrix = new SparseMatrix(3, 3, arr);
matrix.display();

輸出結果為:

0    0    3
0    4    0
1    0    2

可以看到,SparseMatrix類可以正確地將三元組形式的稀疏矩陣轉換為原始矩陣的形式,并且避免了大量的空間浪費。