// 建立乙個原始的二維陣列 11 * 11
// 0: 表示沒有棋子, 1 表示 黑子 2 表藍子
int chessarr1 = new int[11][11];//行列
chessarr1[1][2] = 1;
chessarr1[2][3] = 2;
chessarr1[4][5] = 2;
// 輸出原始的二維陣列
system.out.println("原始的二維陣列~~");
for (int row : chessarr1)
system.out.println();
}
// 1. 先遍歷二維陣列 得到非0資料的個數
int sum = 0;
for (int value : chessarr1)
}} // 2. 建立對應的稀疏陣列
int sparsearr = new int[sum + 1][3];
// 給稀疏陣列賦值
sparsearr[0][0] = 11;
sparsearr[0][1] = 11;
sparsearr[0][2] = sum;
// 遍歷二維陣列,將非0的值存放到 sparsearr中
int count = 0; //count 用於記錄是第幾個非0資料
for (int i = 0; i < chessarr1.length; i++)
}}
// 輸出稀疏陣列的形式
system.out.println();
system.out.println("得到稀疏陣列為~~~~");
for (int ints : sparsearr)
system.out.println();
/*
* 1. 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列,比如上面的 chessarr2 = int [11][11]
2. 在讀取稀疏陣列後幾行的資料,並賦給 原始的二維陣列 即可.
*///1. 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列
int chessarr2 = new int[sparsearr[0][0]][sparsearr[0][1]];
//2. 在讀取稀疏陣列後幾行的資料(從第二行開始),並賦給 原始的二維陣列 即可
for(int i = 1; i < sparsearr.length; i++)
// 輸出恢復後的二維陣列
system.out.println();
system.out.println("恢復後的二維陣列");
for (int row : chessarr2)
system.out.println();
}
1 稀疏陣列
在乙個陣列中,大部分的元素為同乙個值,可以用稀疏陣列來儲存該陣列 壓縮陣列 記錄陣列一共有幾行幾列 有多少不同值 把具有不同值的行列及其值記錄在乙個小規模陣列中 從而縮小陣列規模 二維陣列轉稀疏陣列的思路 1.遍歷原始的二維陣列,得到有效資料的個數sum 2.根據sum就可以建立稀疏陣列sparse...
資料結構 1 稀疏陣列
在使用二維陣列儲存資料時,如果儲存的非預設值 比如 int 型別的預設值是0 的個數少於整個二維陣列的大小時,就可以考慮使用稀疏陣列來減少記憶體使用空間 稀疏陣列的第一維是普通陣列的一維長度二維長度和非預設元素個數 其他維是非預設元素的一維下標二維下標和元素值 獲取普通陣列的一維和二維的長度,以及非...
稀疏陣列,稀疏矩陣概念
稀疏矩陣 矩陣中非零元素的個數遠遠小於矩陣元素的總數,並且非零元素的分布沒有規律,通常認為矩陣中非零元素的總數比上矩陣所有元素總數的值小於等於0.05時,則稱該矩陣為稀疏矩陣 sparse matrix 該比值稱為這個矩陣的稠密度。稀疏陣列 稀疏陣列可以看做是普通陣列的壓縮,但是這裡說的普通陣列是值...